Control-flow analysis: do-while scope is ended after condition but before jump #KT-15334 Fixed
This commit is contained in:
@@ -30,11 +30,11 @@ L4 [body entry point]:
|
||||
L5 [body exit point]:
|
||||
L6 [condition entry point]:
|
||||
r(true) -> <v0>
|
||||
magic[VALUE_CONSUMER](true|<v0>) -> <v1>
|
||||
2 magic[VALUE_CONSUMER](true|<v0>) -> <v1>
|
||||
jmp(L2) NEXT:[mark({ })]
|
||||
L3 [loop exit point]:
|
||||
- read (Unit) PREV:[]
|
||||
- 2 mark(unreachable()) PREV:[]
|
||||
- mark(unreachable()) PREV:[]
|
||||
- call(unreachable(), unreachable) -> <v2> PREV:[]
|
||||
L1:
|
||||
1 <END> NEXT:[<SINK>] PREV:[]
|
||||
|
||||
+1
-1
@@ -50,7 +50,7 @@ L6 [condition entry point]:
|
||||
- r(1) -> <v2> PREV:[]
|
||||
- mark(0 > 1) PREV:[]
|
||||
- call(0 > 1, compareTo|<v1>, <v2>) -> <v3> PREV:[]
|
||||
- jt(L2|<v3>) NEXT:[read (Unit), mark({return})] PREV:[]
|
||||
- 2 jt(L2|<v3>) NEXT:[read (Unit), mark({return})] PREV:[]
|
||||
L3 [loop exit point]:
|
||||
- read (Unit) PREV:[]
|
||||
L1:
|
||||
|
||||
@@ -29,7 +29,7 @@ L8 ['if' expression result]:
|
||||
L5 [body exit point]:
|
||||
L6 [condition entry point]:
|
||||
r(true) -> <v5>
|
||||
magic[VALUE_CONSUMER](true|<v5>) -> <v6>
|
||||
2 magic[VALUE_CONSUMER](true|<v5>) -> <v6>
|
||||
jmp(L2) NEXT:[mark({ if (b) break; continue; })]
|
||||
L3 [loop exit point]:
|
||||
read (Unit) PREV:[jmp(L3)]
|
||||
|
||||
Reference in New Issue
Block a user