Fixing Symbolic List assignment #2477
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.
Explaining the operations/changes that the ASR symbolic pass introduces
Now as discussed here Seg Fault for case involving symbolic lists through llvm backend #2450 (comment) , case
ii
is always a deep copy and as observed works without any issues. Though this can surely be improvedRather than the simple assignment we could have something like
i) Empty l1
ii) Appening elements of l1 with
basic_heap
iii)
basic_assign
between elements of l1 & l2But that can be taken care of later
The pass essentially deals with case
i
What happens is the following (Snippet 1 is transformed into Snippet 2)