Skip to content

Commit d1bf585

Browse files
committed
WI #1268 Avoid duplicate outgoing edges in recursive graphs
Ported from original commit 2c91f8a
1 parent 7b94976 commit d1bf585

13 files changed

+4894
-39189
lines changed

TypeCobol.Analysis.Test/BasicCfgInstrs/CGM110.dot

Lines changed: 858 additions & 3861 deletions
Large diffs are not rendered by default.

TypeCobol.Analysis.Test/BasicCfgInstrs/IX105A.dot

Lines changed: 1652 additions & 21783 deletions
Large diffs are not rendered by default.

TypeCobol.Analysis.Test/BasicCfgInstrs/PerformProc1Recursive0.dot

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -34,17 +34,6 @@ label = "{PARAREC. Block21| add 1 to n\l display n\l if n \< 3\l}"
3434
Block22 [
3535
label = "{Block22| display 'before perform'\l}"
3636
]
37-
Block12 [
38-
label = "{Block12| perform pararec\l}"
39-
]
40-
Block12 -> Block21 [style=dashed]
41-
42-
Block13 [
43-
label = "{Block13| display 'after perform'\l}"
44-
]
45-
Block15 [
46-
label = "{Block15| display 'terminate'\l}"
47-
]
4837
Block24 [
4938
label = "{Block24| else\l display 'not done'\l}"
5039
]
@@ -54,8 +43,6 @@ label = "{Block25| display 'terminate'\l}"
5443
Block21 -> Block22
5544
Block21 -> Block24
5645
Block22 -> Block12
57-
Block12 -> Block13
58-
Block13 -> Block15
5946
Block24 -> Block25
6047

6148
}

TypeCobol.Analysis.Test/BasicCfgInstrs/PerformProc2Recursive0.dot

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -46,17 +46,6 @@ label = "{PARAREC. Block38| add 1 to n\l display n\l if n \< 3\l}"
4646
Block39 [
4747
label = "{Block39| display 'before perform'\l}"
4848
]
49-
Block18 [
50-
label = "{Block18| perform pararec2\l}"
51-
]
52-
Block18 -> Block33 [style=dashed]
53-
54-
Block19 [
55-
label = "{Block19| display 'after perform'\l}"
56-
]
57-
Block21 [
58-
label = "{Block21| display 'terminate'\l}"
59-
]
6049
Block41 [
6150
label = "{Block41| else\l display 'not done'\l}"
6251
]
@@ -66,8 +55,6 @@ label = "{Block42| display 'terminate'\l}"
6655
Block38 -> Block39
6756
Block38 -> Block41
6857
Block39 -> Block18
69-
Block18 -> Block19
70-
Block19 -> Block21
7158
Block41 -> Block42
7259

7360
}

TypeCobol.Analysis.Test/BasicCfgInstrs/PerformProc3Recursive0.dot

Lines changed: 3 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -46,17 +46,6 @@ label = "{PARAREC. Block65| add 1 to n\l display n\l if n \< 3\l}"
4646
Block66 [
4747
label = "{Block66| display 'before perform pararec2 in pararec'\l}"
4848
]
49-
Block26 [
50-
label = "{Block26| perform pararec2\l}"
51-
]
52-
Block26 -> Block55 [style=dashed]
53-
54-
Block27 [
55-
label = "{Block27| display 'after perform pararec2 in pararec'\l}"
56-
]
57-
Block31 [
58-
label = "{Block31| display 'terminate in pararec'\l}"
59-
]
6049
Block68 [
6150
label = "{Block68| else\l display 'not done in pararec'\l}"
6251
]
@@ -84,17 +73,6 @@ label = "{PARAREC2. Block71| add 1 to n\l display n\l if n \< 3\l}"
8473
Block72 [
8574
label = "{Block72| display 'before perform pararec in pararec2'\l}"
8675
]
87-
Block34 [
88-
label = "{Block34| perform pararec\l}"
89-
]
90-
Block34 -> Block65 [style=dashed]
91-
92-
Block35 [
93-
label = "{Block35| display 'after perform pararec in pararec2'\l}"
94-
]
95-
Block37 [
96-
label = "{Block37| display 'terminate in pararec2'\l}"
97-
]
9876
Block74 [
9977
label = "{Block74| else\l display 'not done in pararec2'\l}"
10078
]
@@ -104,8 +82,6 @@ label = "{Block75| display 'terminate in pararec2'\l}"
10482
Block71 -> Block72
10583
Block71 -> Block74
10684
Block72 -> Block34
107-
Block34 -> Block35
108-
Block35 -> Block37
10985
Block74 -> Block75
11086

11187
}
@@ -136,11 +112,12 @@ Block29 -> Block60 [style=dashed]
136112
Block30 [
137113
label = "{Block30|}"
138114
]
115+
Block31 [
116+
label = "{Block31| display 'terminate in pararec'\l}"
117+
]
139118
Block65 -> Block66
140119
Block65 -> Block68
141120
Block66 -> Block26
142-
Block26 -> Block27
143-
Block27 -> Block31
144121
Block68 -> Block29
145122
Block29 -> Block30
146123
Block30 -> Block31
@@ -173,28 +150,15 @@ Block26 -> Block55 [style=dashed]
173150
Block27 [
174151
label = "{Block27| display 'after perform pararec2 in pararec'\l}"
175152
]
176-
Block31 [
177-
label = "{Block31| display 'terminate in pararec'\l}"
178-
]
179153
Block28 [
180154
label = "{Block28| else\l display 'not done in pararec'\l}"
181155
]
182-
Block29 [
183-
label = "{Block29| perform pararec3\l}"
184-
]
185-
Block29 -> Block60 [style=dashed]
186-
187-
Block30 [
188-
label = "{Block30|}"
189-
]
190156
Block24 -> Block25
191157
Block24 -> Block28
192158
Block25 -> Block26
193159
Block26 -> Block27
194160
Block27 -> Block31
195161
Block28 -> Block29
196-
Block29 -> Block30
197-
Block30 -> Block31
198162

199163
}
200164
Block1 -> Block24 [style=dashed]

0 commit comments

Comments
 (0)