C#: Always create basic blocks for nodes with a conditional predecessor

This commit is contained in:
Tom Hvitved
2020-11-25 12:12:57 +01:00
parent 028a72bcdd
commit d4ee8cdd18
12 changed files with 4191 additions and 286 deletions

View File

@@ -31,8 +31,13 @@ nodes
| Assert.cs:31:27:31:27 | access to local variable s |
| Assert.cs:31:27:31:27 | access to local variable s |
| Assert.cs:45:9:45:25 | [b (line 7): true] SSA def(s) |
| Assert.cs:46:23:46:36 | [true, b (line 7): true] ... && ... |
| Assert.cs:46:36:46:36 | [b (line 7): true] access to parameter b |
| Assert.cs:47:27:47:27 | access to local variable s |
| Assert.cs:49:9:49:25 | [b (line 7): true] SSA def(s) |
| Assert.cs:50:24:50:38 | [false] ... \|\| ... |
| Assert.cs:50:37:50:38 | [false] !... |
| Assert.cs:50:38:50:38 | [b (line 7): true] access to parameter b |
| Assert.cs:51:27:51:27 | access to local variable s |
| B.cs:7:11:7:29 | SSA def(eqCallAlways) |
| B.cs:10:11:10:30 | SSA def(neqCallAlways) |
@@ -46,8 +51,11 @@ nodes
| B.cs:22:9:24:37 | if (...) ... |
| B.cs:24:13:24:25 | access to local variable neqCallAlways |
| C.cs:10:16:10:23 | SSA def(o) |
| C.cs:11:13:11:30 | [false] !... |
| C.cs:11:15:11:29 | [true] !... |
| C.cs:11:17:11:28 | [false] !... |
| C.cs:16:9:19:9 | if (...) ... |
| C.cs:16:13:16:24 | [true] !... |
| C.cs:18:13:18:13 | access to local variable o |
| C.cs:40:13:40:35 | SSA def(s) |
| C.cs:42:9:42:9 | access to local variable s |
@@ -75,6 +83,7 @@ nodes
| C.cs:194:9:194:16 | SSA def(s) |
| C.cs:197:13:197:13 | access to local variable s |
| C.cs:198:13:198:20 | [b (line 193): true] SSA def(s) |
| C.cs:202:16:202:19 | true |
| C.cs:204:13:204:13 | access to local variable s |
| C.cs:205:13:205:20 | SSA def(s) |
| C.cs:211:13:211:35 | SSA def(s) |
@@ -169,6 +178,7 @@ nodes
| D.cs:151:9:151:11 | access to parameter obj |
| D.cs:163:16:163:25 | SSA def(obj) |
| D.cs:168:9:170:9 | [exception: Exception] catch (...) {...} |
| D.cs:168:26:168:26 | [exception: Exception] Exception e |
| D.cs:171:9:171:11 | access to local variable obj |
| D.cs:240:9:240:16 | SSA def(o) |
| D.cs:241:21:241:37 | ... ? ... : ... |
@@ -202,9 +212,11 @@ nodes
| D.cs:304:16:304:23 | SSA def(s) |
| D.cs:307:13:311:13 | foreach (... ... in ...) ... |
| D.cs:312:13:313:29 | if (...) ... |
| D.cs:312:17:312:23 | [true] !... |
| D.cs:313:17:313:17 | access to local variable s |
| D.cs:316:16:316:23 | SSA def(r) |
| D.cs:318:16:318:19 | access to local variable stat |
| D.cs:318:16:318:62 | [false] ... && ... |
| D.cs:318:41:318:44 | access to local variable stat |
| D.cs:324:9:324:9 | access to local variable r |
| D.cs:351:15:351:22 | SSA def(a) |
@@ -217,6 +229,7 @@ nodes
| D.cs:363:13:363:16 | access to local variable last |
| D.cs:366:15:366:47 | SSA def(b) |
| D.cs:367:13:367:56 | [false] ... && ... |
| D.cs:370:9:373:9 | for (...;...;...) ... |
| D.cs:370:25:370:25 | access to local variable i |
| D.cs:371:9:373:9 | {...} |
| D.cs:372:13:372:13 | access to local variable b |
@@ -247,12 +260,18 @@ nodes
| D.cs:405:45:405:45 | SSA param(y) |
| D.cs:405:45:405:45 | SSA param(y) |
| D.cs:405:45:405:45 | SSA param(y) |
| D.cs:407:13:407:64 | [false] ... \|\| ... |
| D.cs:407:13:407:64 | [false] ... \|\| ... |
| D.cs:407:14:407:35 | [false] ... && ... |
| D.cs:407:14:407:35 | [false] ... && ... |
| D.cs:407:42:407:42 | access to parameter x |
| D.cs:407:42:407:42 | access to parameter x |
| D.cs:407:42:407:63 | [false] ... && ... |
| D.cs:407:42:407:63 | [false] ... && ... |
| D.cs:407:55:407:55 | access to parameter y |
| D.cs:407:55:407:55 | access to parameter y |
| D.cs:409:9:410:25 | if (...) ... |
| D.cs:409:9:410:25 | if (...) ... |
| D.cs:410:13:410:13 | access to parameter y |
| D.cs:411:9:412:25 | if (...) ... |
| D.cs:412:13:412:13 | access to parameter x |
@@ -285,11 +304,14 @@ nodes
| E.cs:112:13:112:30 | ...; |
| E.cs:120:16:120:20 | [true] !... |
| E.cs:120:17:120:20 | access to local variable stop |
| E.cs:121:9:143:9 | {...} |
| E.cs:123:20:123:24 | [false] !... |
| E.cs:123:20:123:24 | [true] !... |
| E.cs:123:20:123:35 | [false] ... && ... |
| E.cs:123:20:123:35 | [true] ... && ... |
| E.cs:123:21:123:24 | access to local variable stop |
| E.cs:123:29:123:29 | access to local variable j |
| E.cs:124:13:142:13 | {...} |
| E.cs:125:33:125:35 | access to local variable obj |
| E.cs:128:21:128:23 | access to local variable obj |
| E.cs:137:25:137:34 | SSA def(obj) |
@@ -329,6 +351,7 @@ nodes
| E.cs:220:13:220:13 | access to local variable x |
| E.cs:227:13:227:20 | [b (line 223): true] SSA def(x) |
| E.cs:229:13:229:13 | access to local variable x |
| E.cs:229:13:229:25 | ...; |
| E.cs:230:9:230:9 | access to local variable x |
| E.cs:233:26:233:26 | SSA param(i) |
| E.cs:235:16:235:16 | access to parameter i |
@@ -360,12 +383,20 @@ nodes
| E.cs:380:30:380:31 | SSA param(e2) |
| E.cs:380:30:380:31 | SSA param(e2) |
| E.cs:380:30:380:31 | SSA param(e2) |
| E.cs:382:13:382:68 | [false] ... \|\| ... |
| E.cs:382:13:382:68 | [false] ... \|\| ... |
| E.cs:382:14:382:37 | [false] ... && ... |
| E.cs:382:14:382:37 | [false] ... && ... |
| E.cs:382:28:382:29 | access to parameter e2 |
| E.cs:382:28:382:29 | access to parameter e2 |
| E.cs:382:44:382:45 | access to parameter e1 |
| E.cs:382:44:382:45 | access to parameter e1 |
| E.cs:382:44:382:67 | [false] ... && ... |
| E.cs:382:44:382:67 | [false] ... && ... |
| E.cs:384:9:385:24 | if (...) ... |
| E.cs:384:9:385:24 | if (...) ... |
| E.cs:384:13:384:36 | [false] ... && ... |
| E.cs:384:13:384:36 | [false] ... && ... |
| E.cs:384:27:384:28 | access to parameter e2 |
| E.cs:386:16:386:17 | access to parameter e1 |
| E.cs:386:27:386:28 | access to parameter e2 |
@@ -426,8 +457,13 @@ edges
| Assert.cs:21:9:21:25 | [b (line 7): true] SSA def(s) | Assert.cs:23:27:23:27 | access to local variable s |
| Assert.cs:29:9:29:25 | [b (line 7): false] SSA def(s) | Assert.cs:31:27:31:27 | access to local variable s |
| Assert.cs:29:9:29:25 | [b (line 7): true] SSA def(s) | Assert.cs:31:27:31:27 | access to local variable s |
| Assert.cs:45:9:45:25 | [b (line 7): true] SSA def(s) | Assert.cs:47:27:47:27 | access to local variable s |
| Assert.cs:49:9:49:25 | [b (line 7): true] SSA def(s) | Assert.cs:51:27:51:27 | access to local variable s |
| Assert.cs:45:9:45:25 | [b (line 7): true] SSA def(s) | Assert.cs:46:36:46:36 | [b (line 7): true] access to parameter b |
| Assert.cs:46:23:46:36 | [true, b (line 7): true] ... && ... | Assert.cs:47:27:47:27 | access to local variable s |
| Assert.cs:46:36:46:36 | [b (line 7): true] access to parameter b | Assert.cs:46:23:46:36 | [true, b (line 7): true] ... && ... |
| Assert.cs:49:9:49:25 | [b (line 7): true] SSA def(s) | Assert.cs:50:38:50:38 | [b (line 7): true] access to parameter b |
| Assert.cs:50:24:50:38 | [false] ... \|\| ... | Assert.cs:51:27:51:27 | access to local variable s |
| Assert.cs:50:37:50:38 | [false] !... | Assert.cs:50:24:50:38 | [false] ... \|\| ... |
| Assert.cs:50:38:50:38 | [b (line 7): true] access to parameter b | Assert.cs:50:37:50:38 | [false] !... |
| B.cs:7:11:7:29 | SSA def(eqCallAlways) | B.cs:13:13:13:24 | access to local variable eqCallAlways |
| B.cs:10:11:10:30 | SSA def(neqCallAlways) | B.cs:13:13:13:36 | ...; |
| B.cs:10:11:10:30 | SSA def(neqCallAlways) | B.cs:15:9:16:26 | if (...) ... |
@@ -441,8 +477,11 @@ edges
| B.cs:20:13:20:26 | ...; | B.cs:22:9:24:37 | if (...) ... |
| B.cs:22:9:24:37 | if (...) ... | B.cs:24:13:24:25 | access to local variable neqCallAlways |
| C.cs:10:16:10:23 | SSA def(o) | C.cs:11:17:11:28 | [false] !... |
| C.cs:11:17:11:28 | [false] !... | C.cs:16:9:19:9 | if (...) ... |
| C.cs:16:9:19:9 | if (...) ... | C.cs:18:13:18:13 | access to local variable o |
| C.cs:11:13:11:30 | [false] !... | C.cs:16:9:19:9 | if (...) ... |
| C.cs:11:15:11:29 | [true] !... | C.cs:11:13:11:30 | [false] !... |
| C.cs:11:17:11:28 | [false] !... | C.cs:11:15:11:29 | [true] !... |
| C.cs:16:9:19:9 | if (...) ... | C.cs:16:13:16:24 | [true] !... |
| C.cs:16:13:16:24 | [true] !... | C.cs:18:13:18:13 | access to local variable o |
| C.cs:40:13:40:35 | SSA def(s) | C.cs:42:9:42:9 | access to local variable s |
| C.cs:55:13:55:36 | SSA def(o2) | C.cs:57:9:57:10 | access to local variable o2 |
| C.cs:62:13:62:46 | SSA def(o1) | C.cs:64:9:64:10 | access to local variable o1 |
@@ -460,7 +499,8 @@ edges
| C.cs:179:13:179:20 | SSA def(s) | C.cs:178:13:178:13 | access to local variable s |
| C.cs:194:9:194:16 | SSA def(s) | C.cs:197:13:197:13 | access to local variable s |
| C.cs:198:13:198:20 | [b (line 193): true] SSA def(s) | C.cs:197:13:197:13 | access to local variable s |
| C.cs:205:13:205:20 | SSA def(s) | C.cs:204:13:204:13 | access to local variable s |
| C.cs:202:16:202:19 | true | C.cs:204:13:204:13 | access to local variable s |
| C.cs:205:13:205:20 | SSA def(s) | C.cs:202:16:202:19 | true |
| C.cs:211:13:211:35 | SSA def(s) | C.cs:218:9:219:25 | if (...) ... |
| C.cs:215:13:215:20 | SSA def(s) | C.cs:218:9:219:25 | if (...) ... |
| C.cs:218:9:219:25 | if (...) ... | C.cs:219:13:219:13 | access to local variable s |
@@ -546,7 +586,8 @@ edges
| D.cs:144:9:146:9 | {...} | D.cs:143:25:143:25 | access to local variable i |
| D.cs:149:36:149:38 | SSA param(obj) | D.cs:151:9:151:11 | access to parameter obj |
| D.cs:163:16:163:25 | SSA def(obj) | D.cs:168:9:170:9 | [exception: Exception] catch (...) {...} |
| D.cs:168:9:170:9 | [exception: Exception] catch (...) {...} | D.cs:171:9:171:11 | access to local variable obj |
| D.cs:168:9:170:9 | [exception: Exception] catch (...) {...} | D.cs:168:26:168:26 | [exception: Exception] Exception e |
| D.cs:168:26:168:26 | [exception: Exception] Exception e | D.cs:171:9:171:11 | access to local variable obj |
| D.cs:240:9:240:16 | SSA def(o) | D.cs:241:29:241:32 | null |
| D.cs:240:9:240:16 | SSA def(o) | D.cs:241:36:241:37 | "" |
| D.cs:241:21:241:37 | ... ? ... : ... | D.cs:244:9:247:25 | if (...) ... |
@@ -577,11 +618,13 @@ edges
| D.cs:298:9:302:9 | {...} | D.cs:300:17:300:20 | access to local variable prev |
| D.cs:304:16:304:23 | SSA def(s) | D.cs:307:13:311:13 | foreach (... ... in ...) ... |
| D.cs:307:13:311:13 | foreach (... ... in ...) ... | D.cs:312:13:313:29 | if (...) ... |
| D.cs:312:13:313:29 | if (...) ... | D.cs:313:17:313:17 | access to local variable s |
| D.cs:312:13:313:29 | if (...) ... | D.cs:312:17:312:23 | [true] !... |
| D.cs:312:17:312:23 | [true] !... | D.cs:313:17:313:17 | access to local variable s |
| D.cs:316:16:316:23 | SSA def(r) | D.cs:318:16:318:19 | access to local variable stat |
| D.cs:318:16:318:19 | access to local variable stat | D.cs:318:16:318:62 | [false] ... && ... |
| D.cs:318:16:318:19 | access to local variable stat | D.cs:318:41:318:44 | access to local variable stat |
| D.cs:318:16:318:19 | access to local variable stat | D.cs:324:9:324:9 | access to local variable r |
| D.cs:318:41:318:44 | access to local variable stat | D.cs:324:9:324:9 | access to local variable r |
| D.cs:318:16:318:62 | [false] ... && ... | D.cs:324:9:324:9 | access to local variable r |
| D.cs:318:41:318:44 | access to local variable stat | D.cs:318:16:318:62 | [false] ... && ... |
| D.cs:351:15:351:22 | SSA def(a) | D.cs:355:9:356:21 | for (...;...;...) ... |
| D.cs:355:9:356:21 | for (...;...;...) ... | D.cs:355:25:355:25 | access to local variable i |
| D.cs:355:25:355:25 | access to local variable i | D.cs:356:13:356:13 | access to local variable a |
@@ -590,7 +633,8 @@ edges
| D.cs:360:20:360:30 | SSA def(last) | D.cs:361:29:361:29 | access to local variable i |
| D.cs:361:29:361:29 | access to local variable i | D.cs:363:13:363:16 | access to local variable last |
| D.cs:366:15:366:47 | SSA def(b) | D.cs:367:13:367:56 | [false] ... && ... |
| D.cs:367:13:367:56 | [false] ... && ... | D.cs:370:25:370:25 | access to local variable i |
| D.cs:367:13:367:56 | [false] ... && ... | D.cs:370:9:373:9 | for (...;...;...) ... |
| D.cs:370:9:373:9 | for (...;...;...) ... | D.cs:370:25:370:25 | access to local variable i |
| D.cs:370:25:370:25 | access to local variable i | D.cs:371:9:373:9 | {...} |
| D.cs:370:25:370:25 | access to local variable i | D.cs:372:13:372:13 | access to local variable b |
| D.cs:371:9:373:9 | {...} | D.cs:370:25:370:25 | access to local variable i |
@@ -622,13 +666,19 @@ edges
| D.cs:405:45:405:45 | SSA param(y) | D.cs:407:14:407:35 | [false] ... && ... |
| D.cs:405:45:405:45 | SSA param(y) | D.cs:407:14:407:35 | [false] ... && ... |
| D.cs:405:45:405:45 | SSA param(y) | D.cs:407:14:407:35 | [false] ... && ... |
| D.cs:407:14:407:35 | [false] ... && ... | D.cs:407:42:407:63 | [false] ... && ... |
| D.cs:407:14:407:35 | [false] ... && ... | D.cs:407:55:407:55 | access to parameter y |
| D.cs:407:14:407:35 | [false] ... && ... | D.cs:407:55:407:55 | access to parameter y |
| D.cs:407:42:407:63 | [false] ... && ... | D.cs:410:13:410:13 | access to parameter y |
| D.cs:407:42:407:63 | [false] ... && ... | D.cs:411:9:412:25 | if (...) ... |
| D.cs:407:13:407:64 | [false] ... \|\| ... | D.cs:409:9:410:25 | if (...) ... |
| D.cs:407:13:407:64 | [false] ... \|\| ... | D.cs:409:9:410:25 | if (...) ... |
| D.cs:407:14:407:35 | [false] ... && ... | D.cs:407:42:407:42 | access to parameter x |
| D.cs:407:14:407:35 | [false] ... && ... | D.cs:407:42:407:42 | access to parameter x |
| D.cs:407:42:407:42 | access to parameter x | D.cs:407:42:407:63 | [false] ... && ... |
| D.cs:407:42:407:42 | access to parameter x | D.cs:407:55:407:55 | access to parameter y |
| D.cs:407:42:407:42 | access to parameter x | D.cs:407:55:407:55 | access to parameter y |
| D.cs:407:42:407:63 | [false] ... && ... | D.cs:407:13:407:64 | [false] ... \|\| ... |
| D.cs:407:42:407:63 | [false] ... && ... | D.cs:407:13:407:64 | [false] ... \|\| ... |
| D.cs:407:55:407:55 | access to parameter y | D.cs:407:42:407:63 | [false] ... && ... |
| D.cs:407:55:407:55 | access to parameter y | D.cs:407:42:407:63 | [false] ... && ... |
| D.cs:409:9:410:25 | if (...) ... | D.cs:410:13:410:13 | access to parameter y |
| D.cs:409:9:410:25 | if (...) ... | D.cs:411:9:412:25 | if (...) ... |
| D.cs:411:9:412:25 | if (...) ... | D.cs:412:13:412:13 | access to parameter x |
| E.cs:9:18:9:26 | SSA def(a2) | E.cs:10:22:10:54 | ... && ... |
| E.cs:10:22:10:54 | ... && ... | E.cs:12:38:12:39 | access to local variable a2 |
@@ -654,17 +704,20 @@ edges
| E.cs:111:25:111:25 | access to local variable i | E.cs:112:13:112:16 | access to local variable arr2 |
| E.cs:111:25:111:25 | access to local variable i | E.cs:112:13:112:30 | ...; |
| E.cs:112:13:112:30 | ...; | E.cs:111:25:111:25 | access to local variable i |
| E.cs:120:16:120:20 | [true] !... | E.cs:123:21:123:24 | access to local variable stop |
| E.cs:120:16:120:20 | [true] !... | E.cs:121:9:143:9 | {...} |
| E.cs:120:17:120:20 | access to local variable stop | E.cs:120:16:120:20 | [true] !... |
| E.cs:121:9:143:9 | {...} | E.cs:123:21:123:24 | access to local variable stop |
| E.cs:123:20:123:24 | [false] !... | E.cs:123:20:123:35 | [false] ... && ... |
| E.cs:123:20:123:24 | [true] !... | E.cs:123:20:123:35 | [false] ... && ... |
| E.cs:123:20:123:24 | [true] !... | E.cs:123:20:123:35 | [true] ... && ... |
| E.cs:123:20:123:24 | [true] !... | E.cs:125:33:125:35 | access to local variable obj |
| E.cs:123:20:123:24 | [true] !... | E.cs:123:29:123:29 | access to local variable j |
| E.cs:123:20:123:35 | [false] ... && ... | E.cs:120:17:120:20 | access to local variable stop |
| E.cs:123:20:123:35 | [true] ... && ... | E.cs:128:21:128:23 | access to local variable obj |
| E.cs:123:20:123:35 | [true] ... && ... | E.cs:141:17:141:26 | ...; |
| E.cs:123:20:123:35 | [true] ... && ... | E.cs:124:13:142:13 | {...} |
| E.cs:123:20:123:35 | [true] ... && ... | E.cs:125:33:125:35 | access to local variable obj |
| E.cs:123:21:123:24 | access to local variable stop | E.cs:123:20:123:24 | [false] !... |
| E.cs:123:21:123:24 | access to local variable stop | E.cs:123:20:123:24 | [true] !... |
| E.cs:123:29:123:29 | access to local variable j | E.cs:123:20:123:35 | [false] ... && ... |
| E.cs:123:29:123:29 | access to local variable j | E.cs:123:20:123:35 | [true] ... && ... |
| E.cs:124:13:142:13 | {...} | E.cs:128:21:128:23 | access to local variable obj |
| E.cs:124:13:142:13 | {...} | E.cs:141:17:141:26 | ...; |
| E.cs:137:25:137:34 | SSA def(obj) | E.cs:139:21:139:29 | continue; |
| E.cs:139:21:139:29 | continue; | E.cs:123:21:123:24 | access to local variable stop |
| E.cs:141:17:141:26 | ...; | E.cs:123:21:123:24 | access to local variable stop |
@@ -695,7 +748,8 @@ edges
| E.cs:217:13:217:20 | [b (line 213): true] SSA def(x) | E.cs:218:9:218:9 | access to local variable x |
| E.cs:217:13:217:20 | [b (line 213): true] SSA def(x) | E.cs:220:13:220:13 | access to local variable x |
| E.cs:227:13:227:20 | [b (line 223): true] SSA def(x) | E.cs:229:13:229:13 | access to local variable x |
| E.cs:227:13:227:20 | [b (line 223): true] SSA def(x) | E.cs:230:9:230:9 | access to local variable x |
| E.cs:227:13:227:20 | [b (line 223): true] SSA def(x) | E.cs:229:13:229:25 | ...; |
| E.cs:229:13:229:25 | ...; | E.cs:230:9:230:9 | access to local variable x |
| E.cs:233:26:233:26 | SSA param(i) | E.cs:235:16:235:16 | access to parameter i |
| E.cs:238:26:238:26 | SSA param(i) | E.cs:240:21:240:21 | access to parameter i |
| E.cs:283:13:283:22 | [b (line 279): false] SSA def(o) | E.cs:285:9:285:9 | access to local variable o |
@@ -718,13 +772,21 @@ edges
| E.cs:380:30:380:31 | SSA param(e2) | E.cs:382:28:382:29 | access to parameter e2 |
| E.cs:380:30:380:31 | SSA param(e2) | E.cs:382:28:382:29 | access to parameter e2 |
| E.cs:380:30:380:31 | SSA param(e2) | E.cs:382:28:382:29 | access to parameter e2 |
| E.cs:382:14:382:37 | [false] ... && ... | E.cs:382:44:382:67 | [false] ... && ... |
| E.cs:382:14:382:37 | [false] ... && ... | E.cs:382:44:382:67 | [false] ... && ... |
| E.cs:382:13:382:68 | [false] ... \|\| ... | E.cs:384:9:385:24 | if (...) ... |
| E.cs:382:13:382:68 | [false] ... \|\| ... | E.cs:384:9:385:24 | if (...) ... |
| E.cs:382:14:382:37 | [false] ... && ... | E.cs:382:44:382:45 | access to parameter e1 |
| E.cs:382:14:382:37 | [false] ... && ... | E.cs:382:44:382:45 | access to parameter e1 |
| E.cs:382:28:382:29 | access to parameter e2 | E.cs:382:14:382:37 | [false] ... && ... |
| E.cs:382:28:382:29 | access to parameter e2 | E.cs:382:14:382:37 | [false] ... && ... |
| E.cs:382:44:382:67 | [false] ... && ... | E.cs:384:27:384:28 | access to parameter e2 |
| E.cs:382:44:382:67 | [false] ... && ... | E.cs:386:27:386:28 | access to parameter e2 |
| E.cs:384:27:384:28 | access to parameter e2 | E.cs:386:16:386:17 | access to parameter e1 |
| E.cs:382:44:382:45 | access to parameter e1 | E.cs:382:44:382:67 | [false] ... && ... |
| E.cs:382:44:382:45 | access to parameter e1 | E.cs:382:44:382:67 | [false] ... && ... |
| E.cs:382:44:382:67 | [false] ... && ... | E.cs:382:13:382:68 | [false] ... \|\| ... |
| E.cs:382:44:382:67 | [false] ... && ... | E.cs:382:13:382:68 | [false] ... \|\| ... |
| E.cs:384:9:385:24 | if (...) ... | E.cs:384:13:384:36 | [false] ... && ... |
| E.cs:384:9:385:24 | if (...) ... | E.cs:384:27:384:28 | access to parameter e2 |
| E.cs:384:13:384:36 | [false] ... && ... | E.cs:386:16:386:17 | access to parameter e1 |
| E.cs:384:13:384:36 | [false] ... && ... | E.cs:386:27:386:28 | access to parameter e2 |
| E.cs:384:27:384:28 | access to parameter e2 | E.cs:384:13:384:36 | [false] ... && ... |
| E.cs:404:9:404:18 | SSA def(i) | E.cs:405:16:405:16 | access to local variable i |
| E.cs:404:9:404:18 | SSA def(i) | E.cs:405:16:405:16 | access to local variable i |
| Forwarding.cs:7:16:7:23 | SSA def(s) | Forwarding.cs:9:13:9:30 | [false] !... |