| == neq == |
| fun neq(a: Int, b: Int) { |
| if (a != b) {} |
| } |
| --------------------- |
| L0: |
| 1 <START> |
| v(a: Int) |
| magic[FAKE_INITIALIZER](a: Int) -> <v0> |
| w(a|<v0>) |
| v(b: Int) |
| magic[FAKE_INITIALIZER](b: Int) -> <v1> |
| w(b|<v1>) |
| 2 mark({ if (a != b) {} }) |
| mark(if (a != b) {}) |
| r(a) -> <v2> |
| r(b) -> <v3> |
| mark(a != b) |
| call(a != b, equals|<v2>, <v3>) -> <v4> |
| jf(L2|<v4>) NEXT:[read (Unit), mark({})] |
| 3 mark({}) |
| read (Unit) |
| 2 jmp(L3) NEXT:[merge(if (a != b) {}|!<v5>) -> <v6>] |
| L2 [else branch]: |
| read (Unit) PREV:[jf(L2|<v4>)] |
| L3 ['if' expression result]: |
| merge(if (a != b) {}|!<v5>) -> <v6> PREV:[jmp(L3), read (Unit)] |
| L1: |
| 1 <END> NEXT:[<SINK>] |
| error: |
| <ERROR> PREV:[] |
| sink: |
| <SINK> PREV:[<ERROR>, <END>] |
| ===================== |