shallow fold prevention for addr
, nkHiddenAddr
#24322
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.
fixes #24305, refs #23807
Since #23014
nkHiddenAddr
is produced to fast assign array elements in iterators. However the array access inside thisnkHiddenAddr
can get folded at compile time, generating invalid code. In #23807, compile time folding of regularaddr
expressions was changed to be prevented intransf
butnkHiddenAddr
was not updated alongside it.The method for preventing folding in
addr
in #23807 was also faulty, it should only trigger on the immediate child node of the address rather than all nodes nested inside it. This caused a regression as outlined in this comment.To fix both issues,
addr
andnkHiddenAddr
now both shallowly prevent constant folding for their immediate children.