This repository was archived by the owner on Feb 25, 2025. It is now read-only.
Commit bd39cca
[compiler] Mark each variable stored on entry to catch block.
We do not generate explicit control flow and phis for exceptional
edges. Instead CatchBlockEntry has a Parameter instruction for
each local variable. These Parameter-s represent that state
of local variables on entry into the catch block. This means
that we should mark all variables assigned on entry to the
catch block.
Previous version of the code was incorrectly marking only
direct parameters as stored.
Fixes dart-lang/sdk#36953
Bug: 36953
Change-Id: I2e8040d75ba23d2483e451300f44bbdcef458655
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/103802
Reviewed-by: Daco Harkes <[email protected]>
Commit-Queue: Vyacheslav Egorov <[email protected]>1 parent 0e5ebca commit bd39cca
File tree
2 files changed
+35
-3
lines changed- runtime
- tests/vm/dart
- vm/compiler/backend
2 files changed
+35
-3
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
756 | 756 | | |
757 | 757 | | |
758 | 758 | | |
759 | | - | |
| 759 | + | |
| 760 | + | |
760 | 761 | | |
761 | | - | |
762 | | - | |
| 762 | + | |
| 763 | + | |
| 764 | + | |
763 | 765 | | |
764 | 766 | | |
765 | 767 | | |
| |||
0 commit comments