Fix backtrace line numbers following macros #30011
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is an attempt at fixing #28618 .
The
CodeInfo
block has a fieldcodelocs
that indexes into an array with fullLineInfoNode
objects. This data model allows de-duplication, and in practice it does (only)uniq
-style deduplication, i.e. only consecutive equal objects are deduplicated by this scheme.The lambda
compact-ir
generates this structure. This commit fixes a bug where it mixes monotonously increasing the indices (forcodeloc
) with push/pop operations. This is wrong because the latestLineInfoNode
object is always at the end of the current size of the array; not one position after the currentLineInfoNode
.I have only tested my small test case as described in that bug report; I haven't run the full test suite and I also have only tested this patch on top of
release-1.0
; not on top ofmaster
. Just sending this out there hoping that others can spot any issues with my code asap.