Skip to content

Commit aea6c3c

Browse files
authored
WI #2016 Implement unreachable code detection (#2023)
1 parent d5563bf commit aea6c3c

17 files changed

+383
-9
lines changed
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,4 @@
11
--- Diagnostics ---
22
Line 10[12,16] <37, Warning, General> - Warning: ALTER should not be used
3+
Line 12[12,30] <37, Warning, General> - Warning: Unreachable code detected
4+
Line 13[12,17] <37, Warning, General> - Warning: Unreachable code detected

TypeCobol.Analysis.Test/BasicCfgInstrs/Alter3.diag

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,7 @@ Line 15[12,46] <30, Error, Semantics> - Semantic error: Bad ALTER instruction: c
99
Line 17[12,16] <37, Warning, General> - Warning: ALTER should not be used
1010
Line 17[12,46] <30, Error, Semantics> - Semantic error: Bad ALTER instruction: could not locate corresponding altered GO TO.
1111
Line 22[8,10] <37, Warning, General> - Warning: Paragraph 'p2' is empty
12+
Line 24[12,23] <37, Warning, General> - Warning: Unreachable code detected
13+
Line 27[12,23] <37, Warning, General> - Warning: Unreachable code detected
14+
Line 31[12,41] <37, Warning, General> - Warning: Unreachable code detected
15+
Line 34[12,27] <37, Warning, General> - Warning: Unreachable code detected

TypeCobol.Analysis.Test/BasicCfgInstrs/CGM110.diag

Lines changed: 223 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
--- Diagnostics ---
2+
Line 27[8,27] <37, Warning, General> - Warning: Unreachable code detected
3+
Line 110[14,47] <37, Warning, General> - Warning: Unreachable code detected
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
--- Diagnostics ---
2+
Line 20[8,27] <37, Warning, General> - Warning: Unreachable code detected
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
--- Diagnostics ---
2+
Line 14[8,27] <37, Warning, General> - Warning: Unreachable code detected
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
--- Diagnostics ---
2+
Line 28[15,29] <37, Warning, General> - Warning: A recursive loop has been encountered while analyzing 'PERFORM pararec', recursive instruction is ' perform pararec2'.
3+
Line 29[15,57] <37, Warning, General> - Warning: Unreachable code detected
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
--- Diagnostics ---
2+
Line 31[15,29] <37, Warning, General> - Warning: A recursive loop has been encountered while analyzing 'PERFORM pararec', recursive instruction is ' perform pararec2'.
3+
Line 32[15,57] <37, Warning, General> - Warning: Unreachable code detected
4+
Line 57[15,64] <37, Warning, General> - Warning: A recursive loop has been encountered while analyzing 'PERFORM pararec4', recursive instruction is ' perform pararec4 varying n from 1 by 1 until n > 5'.
5+
Line 57[15,64] <37, Warning, General> - Warning: A recursive loop has been encountered while analyzing 'PERFORM pararec4', recursive instruction is ' perform pararec3 test after varying n from 1 by 1 until n'.
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
--- Diagnostics ---
2+
Line 12[11,35] <37, Warning, General> - Warning: Unreachable code detected

TypeCobol.Analysis.Test/BasicCfgInstrs/IX105A.diag

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,18 @@
11
--- Diagnostics ---
22
Line 339[12,15] <37, Warning, General> - Warning: GOBACK should be used instead of STOP RUN OffendingSymbol=[12,15:STOP]<STOP>
3+
Line 340[15,36] <37, Warning, General> - Warning: Unreachable code detected
4+
Line 340[39,62] <37, Warning, General> - Warning: Unreachable code detected
5+
Line 343[18,39] <37, Warning, General> - Warning: Unreachable code detected
6+
Line 343[43,65] <37, Warning, General> - Warning: Unreachable code detected
7+
Line 344[12,49] <37, Warning, General> - Warning: Unreachable code detected
38
Line 346[12,38] <37, Warning, General> - Warning: "end-if" is missing
49
Line 350[12,37] <37, Warning, General> - Warning: "end-if" is missing
510
Line 355[12,38] <37, Warning, General> - Warning: "end-if" is missing
611
Line 381[12,50] <37, Warning, General> - Warning: "end-if" is missing
712
Line 388[12,45] <37, Warning, General> - Warning: "end-if" is missing
813
Line 393[13,46] <37, Warning, General> - Warning: "end-if" is missing
914
Line 401[12,37] <37, Warning, General> - Warning: "end-if" is missing
15+
Line 419[12,25] <37, Warning, General> - Warning: Unreachable code detected
1016
Line 421[12,47] <37, Warning, General> - Warning: "end-if" is missing
1117
Line 423[12,46] <37, Warning, General> - Warning: "end-if" is missing
1218
Line 436[12,47] <37, Warning, General> - Warning: "end-if" is missing
@@ -18,6 +24,9 @@ Line 458[12,53] <37, Warning, General> - Warning: Statement ' GO TO WRITE-
1824
Line 459[12,54] <37, Warning, General> - Warning: Statement ' GO TO WRITE-TEST-GF-01-FAIL' located at line 485, column 15 prevents this PERFORM statement to reach its exit.
1925
Line 460[12,44] <37, Warning, General> - Warning: Statement ' GO TO WRITE-TEST-GF-01-FAIL' located at line 478, column 15 prevents this PERFORM statement to reach its exit.
2026
Line 461[12,37] <37, Warning, General> - Warning: "end-if" is missing
27+
Line 468[12,26] <37, Warning, General> - Warning: Unreachable code detected
28+
Line 470[12,31] <37, Warning, General> - Warning: Unreachable code detected
29+
Line 471[12,33] <37, Warning, General> - Warning: Unreachable code detected
2130
Line 507[12,40] <37, Warning, General> - Warning: "end-if" is missing
2231
Line 511[12,33] <37, Warning, General> - Warning: "end-if" is missing
2332
Line 546[12,42] <37, Warning, General> - Warning: "end-if" is missing
@@ -30,6 +39,9 @@ Line 603[12,53] <37, Warning, General> - Warning: Statement ' GO TO WRITE-
3039
Line 604[12,54] <37, Warning, General> - Warning: Statement ' GO TO WRITE-TEST-GF-02-FAIL' located at line 630, column 15 prevents this PERFORM statement to reach its exit.
3140
Line 605[12,44] <37, Warning, General> - Warning: Statement ' GO TO WRITE-TEST-GF-02-FAIL' located at line 623, column 15 prevents this PERFORM statement to reach its exit.
3241
Line 606[12,37] <37, Warning, General> - Warning: "end-if" is missing
42+
Line 613[12,26] <37, Warning, General> - Warning: Unreachable code detected
43+
Line 615[12,31] <37, Warning, General> - Warning: Unreachable code detected
44+
Line 616[12,33] <37, Warning, General> - Warning: Unreachable code detected
3345
Line 651[12,40] <37, Warning, General> - Warning: "end-if" is missing
3446
Line 655[12,33] <37, Warning, General> - Warning: "end-if" is missing
3547
Line 686[12,42] <37, Warning, General> - Warning: "end-if" is missing
@@ -44,6 +56,9 @@ Line 743[12,53] <37, Warning, General> - Warning: Statement ' GO TO WRITE-
4456
Line 744[12,54] <37, Warning, General> - Warning: Statement ' GO TO WRITE-TEST-GF-03-FAIL' located at line 770, column 15 prevents this PERFORM statement to reach its exit.
4557
Line 745[12,44] <37, Warning, General> - Warning: Statement ' GO TO WRITE-TEST-GF-03-FAIL' located at line 763, column 15 prevents this PERFORM statement to reach its exit.
4658
Line 746[12,37] <37, Warning, General> - Warning: "end-if" is missing
59+
Line 753[12,26] <37, Warning, General> - Warning: Unreachable code detected
60+
Line 755[12,31] <37, Warning, General> - Warning: Unreachable code detected
61+
Line 756[12,26] <37, Warning, General> - Warning: Unreachable code detected
4762
Line 794[12,39] <37, Warning, General> - Warning: "end-if" is missing
4863
Line 801[12,42] <37, Warning, General> - Warning: "end-if" is missing
4964
Line 829[12,42] <37, Warning, General> - Warning: "end-if" is missing

0 commit comments

Comments
 (0)