Skip to content

Commit 9a178ba

Browse files
committed
Java: Replace idominance tests.
1 parent 32dbb19 commit 9a178ba

File tree

6 files changed

+86
-508
lines changed

6 files changed

+86
-508
lines changed
Lines changed: 20 additions & 157 deletions
Original file line numberDiff line numberDiff line change
@@ -1,157 +1,20 @@
1-
| Test.kt:2:43:79:2 | { ... } | Test.kt:3:13:3:13 | var ...; |
2-
| Test.kt:3:13:3:13 | var ...; | Test.kt:3:17:3:18 | px |
3-
| Test.kt:3:13:3:13 | x | Test.kt:4:13:4:13 | var ...; |
4-
| Test.kt:3:17:3:18 | px | Test.kt:3:13:3:13 | x |
5-
| Test.kt:4:13:4:13 | var ...; | Test.kt:4:17:4:18 | pw |
6-
| Test.kt:4:13:4:13 | w | Test.kt:5:13:5:13 | var ...; |
7-
| Test.kt:4:17:4:18 | pw | Test.kt:4:13:4:13 | w |
8-
| Test.kt:5:13:5:13 | var ...; | Test.kt:5:17:5:18 | pz |
9-
| Test.kt:5:13:5:13 | z | Test.kt:7:7:7:7 | var ...; |
10-
| Test.kt:5:17:5:18 | pz | Test.kt:5:13:5:13 | z |
11-
| Test.kt:7:7:7:7 | j | Test.kt:8:7:8:7 | var ...; |
12-
| Test.kt:7:7:7:7 | var ...; | Test.kt:7:7:7:7 | j |
13-
| Test.kt:8:7:8:7 | var ...; | Test.kt:8:17:8:18 | 50 |
14-
| Test.kt:8:7:8:7 | y | Test.kt:11:3:16:3 | <Expr>; |
15-
| Test.kt:8:17:8:18 | 50 | Test.kt:8:7:8:7 | y |
16-
| Test.kt:11:3:16:3 | ... -> ... | Test.kt:11:3:16:3 | true |
17-
| Test.kt:11:3:16:3 | ... -> ... | Test.kt:11:7:11:7 | x |
18-
| Test.kt:11:3:16:3 | <Expr>; | Test.kt:11:3:16:3 | when ... |
19-
| Test.kt:11:3:16:3 | true | Test.kt:14:10:16:3 | { ... } |
20-
| Test.kt:11:3:16:3 | when ... | Test.kt:11:3:16:3 | ... -> ... |
21-
| Test.kt:11:7:11:7 | x | Test.kt:11:11:11:11 | 0 |
22-
| Test.kt:11:7:11:11 | ... > ... | Test.kt:11:3:16:3 | ... -> ... |
23-
| Test.kt:11:7:11:11 | ... > ... | Test.kt:11:14:14:3 | { ... } |
24-
| Test.kt:11:7:11:11 | ... > ... | Test.kt:18:3:18:3 | <Expr>; |
25-
| Test.kt:11:11:11:11 | 0 | Test.kt:11:7:11:11 | ... > ... |
26-
| Test.kt:11:14:14:3 | { ... } | Test.kt:12:4:12:4 | <Expr>; |
27-
| Test.kt:12:4:12:4 | <Expr>; | Test.kt:12:8:12:9 | 20 |
28-
| Test.kt:12:4:12:9 | ...=... | Test.kt:13:4:13:4 | <Expr>; |
29-
| Test.kt:12:8:12:9 | 20 | Test.kt:12:4:12:9 | ...=... |
30-
| Test.kt:13:4:13:4 | <Expr>; | Test.kt:13:8:13:9 | 10 |
31-
| Test.kt:13:8:13:9 | 10 | Test.kt:13:4:13:9 | ...=... |
32-
| Test.kt:14:10:16:3 | { ... } | Test.kt:15:4:15:4 | <Expr>; |
33-
| Test.kt:15:4:15:4 | <Expr>; | Test.kt:15:8:15:9 | 30 |
34-
| Test.kt:15:8:15:9 | 30 | Test.kt:15:4:15:9 | ...=... |
35-
| Test.kt:18:3:18:3 | <Expr>; | Test.kt:18:8:18:8 | x |
36-
| Test.kt:18:3:18:20 | ...=... | Test.kt:21:3:24:11 | <Expr>; |
37-
| Test.kt:18:7:18:20 | (...)... | Test.kt:18:3:18:20 | ...=... |
38-
| Test.kt:18:8:18:8 | x | Test.kt:18:12:18:12 | y |
39-
| Test.kt:18:8:18:12 | ... + ... | Test.kt:18:7:18:20 | (...)... |
40-
| Test.kt:18:12:18:12 | y | Test.kt:18:8:18:12 | ... + ... |
41-
| Test.kt:21:3:24:11 | ... -> ... | Test.kt:21:3:24:11 | true |
42-
| Test.kt:21:3:24:11 | ... -> ... | Test.kt:21:7:21:7 | x |
43-
| Test.kt:21:3:24:11 | <Expr>; | Test.kt:21:3:24:11 | when ... |
44-
| Test.kt:21:3:24:11 | true | Test.kt:24:11:24:11 | z |
45-
| Test.kt:21:3:24:11 | when ... | Test.kt:21:3:24:11 | ... -> ... |
46-
| Test.kt:21:7:21:7 | x | Test.kt:21:11:21:11 | 0 |
47-
| Test.kt:21:7:21:11 | ... < ... | Test.kt:2:2:79:2 | Normal Exit |
48-
| Test.kt:21:7:21:11 | ... < ... | Test.kt:21:3:24:11 | ... -> ... |
49-
| Test.kt:21:7:21:11 | ... < ... | Test.kt:22:4:22:4 | <Expr>; |
50-
| Test.kt:21:11:21:11 | 0 | Test.kt:21:7:21:11 | ... < ... |
51-
| Test.kt:22:4:22:4 | <Expr>; | Test.kt:22:8:22:9 | 40 |
52-
| Test.kt:22:4:22:9 | ...=... | Test.kt:27:3:27:3 | <Expr>; |
53-
| Test.kt:22:8:22:9 | 40 | Test.kt:22:4:22:9 | ...=... |
54-
| Test.kt:24:11:24:11 | z | Test.kt:24:4:24:11 | return ... |
55-
| Test.kt:27:3:27:3 | <Expr>; | Test.kt:27:7:27:8 | 10 |
56-
| Test.kt:27:3:27:8 | ...=... | Test.kt:30:3:33:3 | <Expr>; |
57-
| Test.kt:27:7:27:8 | 10 | Test.kt:27:3:27:8 | ...=... |
58-
| Test.kt:30:3:33:3 | ... -> ... | Test.kt:30:7:30:7 | x |
59-
| Test.kt:30:3:33:3 | <Expr>; | Test.kt:30:3:33:3 | when ... |
60-
| Test.kt:30:3:33:3 | when ... | Test.kt:30:3:33:3 | ... -> ... |
61-
| Test.kt:30:7:30:7 | x | Test.kt:30:12:30:12 | 0 |
62-
| Test.kt:30:7:30:12 | ... (value equals) ... | Test.kt:30:15:33:3 | { ... } |
63-
| Test.kt:30:7:30:12 | ... (value equals) ... | Test.kt:35:3:35:3 | <Expr>; |
64-
| Test.kt:30:12:30:12 | 0 | Test.kt:30:7:30:12 | ... (value equals) ... |
65-
| Test.kt:30:15:33:3 | { ... } | Test.kt:31:4:31:4 | <Expr>; |
66-
| Test.kt:31:4:31:4 | <Expr>; | Test.kt:31:8:31:9 | 60 |
67-
| Test.kt:31:4:31:9 | ...=... | Test.kt:32:4:32:4 | <Expr>; |
68-
| Test.kt:31:8:31:9 | 60 | Test.kt:31:4:31:9 | ...=... |
69-
| Test.kt:32:4:32:4 | <Expr>; | Test.kt:32:8:32:9 | 10 |
70-
| Test.kt:32:8:32:9 | 10 | Test.kt:32:4:32:9 | ...=... |
71-
| Test.kt:35:3:35:3 | <Expr>; | Test.kt:35:3:35:3 | z |
72-
| Test.kt:35:3:35:3 | z | Test.kt:35:8:35:8 | x |
73-
| Test.kt:35:3:35:8 | ...+=... | Test.kt:38:3:41:3 | while (...) |
74-
| Test.kt:35:8:35:8 | x | Test.kt:35:3:35:8 | ...+=... |
75-
| Test.kt:38:3:41:3 | while (...) | Test.kt:38:10:38:10 | x |
76-
| Test.kt:38:10:38:10 | x | Test.kt:38:14:38:14 | 0 |
77-
| Test.kt:38:10:38:14 | ... > ... | Test.kt:38:17:41:3 | { ... } |
78-
| Test.kt:38:10:38:14 | ... > ... | Test.kt:43:3:43:3 | <Expr>; |
79-
| Test.kt:38:14:38:14 | 0 | Test.kt:38:10:38:14 | ... > ... |
80-
| Test.kt:38:17:41:3 | { ... } | Test.kt:39:4:39:4 | <Expr>; |
81-
| Test.kt:39:4:39:4 | <Expr>; | Test.kt:39:8:39:9 | 10 |
82-
| Test.kt:39:4:39:9 | ...=... | Test.kt:40:4:40:6 | <Expr>; |
83-
| Test.kt:39:8:39:9 | 10 | Test.kt:39:4:39:9 | ...=... |
84-
| Test.kt:40:4:40:4 | <Expr>; | Test.kt:40:4:40:6 | tmp0 |
85-
| Test.kt:40:4:40:4 | x | Test.kt:40:4:40:6 | tmp0 |
86-
| Test.kt:40:4:40:6 | ...=... | Test.kt:40:4:40:6 | <Expr>; |
87-
| Test.kt:40:4:40:6 | <Expr>; | Test.kt:40:4:40:6 | <Stmt> |
88-
| Test.kt:40:4:40:6 | <Expr>; | Test.kt:40:4:40:6 | tmp0 |
89-
| Test.kt:40:4:40:6 | <Stmt> | Test.kt:40:4:40:6 | { ... } |
90-
| Test.kt:40:4:40:6 | dec(...) | Test.kt:40:4:40:6 | ...=... |
91-
| Test.kt:40:4:40:6 | tmp0 | Test.kt:40:4:40:4 | <Expr>; |
92-
| Test.kt:40:4:40:6 | tmp0 | Test.kt:40:4:40:6 | <implicit coercion to unit> |
93-
| Test.kt:40:4:40:6 | tmp0 | Test.kt:40:4:40:6 | dec(...) |
94-
| Test.kt:40:4:40:6 | var ...; | Test.kt:40:4:40:4 | x |
95-
| Test.kt:40:4:40:6 | { ... } | Test.kt:40:4:40:6 | var ...; |
96-
| Test.kt:43:3:43:3 | <Expr>; | Test.kt:43:3:43:3 | z |
97-
| Test.kt:43:3:43:3 | z | Test.kt:43:8:43:8 | y |
98-
| Test.kt:43:3:43:15 | ...+=... | Test.kt:73:3:73:3 | <Expr>; |
99-
| Test.kt:43:8:43:8 | y | Test.kt:43:8:43:15 | (...)... |
100-
| Test.kt:43:8:43:15 | (...)... | Test.kt:43:3:43:15 | ...+=... |
101-
| Test.kt:73:3:73:3 | <Expr>; | Test.kt:73:3:73:3 | z |
102-
| Test.kt:73:3:73:3 | z | Test.kt:73:8:73:8 | x |
103-
| Test.kt:73:3:73:16 | ...+=... | Test.kt:77:3:77:3 | <Expr>; |
104-
| Test.kt:73:8:73:8 | x | Test.kt:73:12:73:12 | y |
105-
| Test.kt:73:8:73:12 | ... + ... | Test.kt:73:16:73:16 | w |
106-
| Test.kt:73:8:73:16 | ... + ... | Test.kt:73:3:73:16 | ...+=... |
107-
| Test.kt:73:12:73:12 | <implicit cast> | Test.kt:73:8:73:12 | ... + ... |
108-
| Test.kt:73:12:73:12 | y | Test.kt:73:12:73:12 | <implicit cast> |
109-
| Test.kt:73:16:73:16 | w | Test.kt:73:8:73:16 | ... + ... |
110-
| Test.kt:77:3:77:3 | <Expr>; | Test.kt:77:7:77:8 | 40 |
111-
| Test.kt:77:3:77:8 | ...=... | Test.kt:78:10:78:10 | w |
112-
| Test.kt:77:7:77:8 | 40 | Test.kt:77:3:77:8 | ...=... |
113-
| Test.kt:78:10:78:10 | w | Test.kt:78:3:78:10 | return ... |
114-
| Test.kt:81:25:98:2 | { ... } | Test.kt:83:7:83:7 | var ...; |
115-
| Test.kt:83:7:83:7 | b | Test.kt:84:7:84:7 | var ...; |
116-
| Test.kt:83:7:83:7 | var ...; | Test.kt:83:7:83:7 | b |
117-
| Test.kt:84:7:84:7 | c | Test.kt:85:3:85:3 | <Expr>; |
118-
| Test.kt:84:7:84:7 | var ...; | Test.kt:84:7:84:7 | c |
119-
| Test.kt:85:3:85:3 | <Expr>; | Test.kt:85:7:85:7 | 0 |
120-
| Test.kt:85:3:85:7 | ...=... | Test.kt:86:3:96:3 | while (...) |
121-
| Test.kt:85:7:85:7 | 0 | Test.kt:85:3:85:7 | ...=... |
122-
| Test.kt:86:3:96:3 | while (...) | Test.kt:86:9:86:12 | true |
123-
| Test.kt:86:9:86:12 | true | Test.kt:86:15:96:3 | { ... } |
124-
| Test.kt:86:15:96:3 | { ... } | Test.kt:87:4:87:4 | <Expr>; |
125-
| Test.kt:87:4:87:4 | <Expr>; | Test.kt:87:8:87:9 | 10 |
126-
| Test.kt:87:4:87:9 | ...=... | Test.kt:88:4:91:4 | <Expr>; |
127-
| Test.kt:87:8:87:9 | 10 | Test.kt:87:4:87:9 | ...=... |
128-
| Test.kt:88:4:91:4 | ... -> ... | Test.kt:88:8:88:8 | a |
129-
| Test.kt:88:4:91:4 | <Expr>; | Test.kt:88:4:91:4 | when ... |
130-
| Test.kt:88:4:91:4 | when ... | Test.kt:88:4:91:4 | ... -> ... |
131-
| Test.kt:88:8:88:8 | a | Test.kt:88:12:88:14 | 100 |
132-
| Test.kt:88:8:88:14 | ... > ... | Test.kt:88:17:91:4 | { ... } |
133-
| Test.kt:88:8:88:14 | ... > ... | Test.kt:92:4:93:9 | <Expr>; |
134-
| Test.kt:88:12:88:14 | 100 | Test.kt:88:8:88:14 | ... > ... |
135-
| Test.kt:88:17:91:4 | { ... } | Test.kt:89:5:89:5 | <Expr>; |
136-
| Test.kt:89:5:89:5 | <Expr>; | Test.kt:89:9:89:10 | 10 |
137-
| Test.kt:89:5:89:10 | ...=... | Test.kt:90:5:90:5 | <Expr>; |
138-
| Test.kt:89:9:89:10 | 10 | Test.kt:89:5:89:10 | ...=... |
139-
| Test.kt:90:5:90:5 | <Expr>; | Test.kt:90:9:90:9 | c |
140-
| Test.kt:90:9:90:9 | c | Test.kt:90:5:90:9 | ...=... |
141-
| Test.kt:92:4:93:9 | ... -> ... | Test.kt:92:8:92:8 | a |
142-
| Test.kt:92:4:93:9 | <Expr>; | Test.kt:92:4:93:9 | when ... |
143-
| Test.kt:92:4:93:9 | when ... | Test.kt:92:4:93:9 | ... -> ... |
144-
| Test.kt:92:8:92:8 | a | Test.kt:92:13:92:14 | 10 |
145-
| Test.kt:92:8:92:14 | ... (value equals) ... | Test.kt:81:2:98:2 | Normal Exit |
146-
| Test.kt:92:8:92:14 | ... (value equals) ... | Test.kt:93:5:93:9 | break |
147-
| Test.kt:92:8:92:14 | ... (value equals) ... | Test.kt:94:4:95:12 | <Expr>; |
148-
| Test.kt:92:13:92:14 | 10 | Test.kt:92:8:92:14 | ... (value equals) ... |
149-
| Test.kt:93:5:93:9 | break | Test.kt:97:10:97:10 | b |
150-
| Test.kt:94:4:95:12 | ... -> ... | Test.kt:94:8:94:8 | a |
151-
| Test.kt:94:4:95:12 | <Expr>; | Test.kt:94:4:95:12 | when ... |
152-
| Test.kt:94:4:95:12 | when ... | Test.kt:94:4:95:12 | ... -> ... |
153-
| Test.kt:94:8:94:8 | a | Test.kt:94:13:94:14 | 20 |
154-
| Test.kt:94:8:94:14 | ... (value equals) ... | Test.kt:95:12:95:12 | c |
155-
| Test.kt:94:13:94:14 | 20 | Test.kt:94:8:94:14 | ... (value equals) ... |
156-
| Test.kt:95:12:95:12 | c | Test.kt:95:5:95:12 | return ... |
157-
| Test.kt:97:10:97:10 | b | Test.kt:97:3:97:10 | return ... |
1+
| Test.kt:2:2:79:2 | Normal Exit | Test.kt:2:2:79:2 | Exit |
2+
| Test.kt:2:43:79:2 | { ... } | Test.kt:11:3:16:3 | ... -> ... |
3+
| Test.kt:2:43:79:2 | { ... } | Test.kt:11:14:14:3 | { ... } |
4+
| Test.kt:2:43:79:2 | { ... } | Test.kt:18:3:18:3 | <Expr>; |
5+
| Test.kt:18:3:18:3 | <Expr>; | Test.kt:2:2:79:2 | Normal Exit |
6+
| Test.kt:18:3:18:3 | <Expr>; | Test.kt:21:3:24:11 | ... -> ... |
7+
| Test.kt:18:3:18:3 | <Expr>; | Test.kt:22:4:22:4 | <Expr>; |
8+
| Test.kt:22:4:22:4 | <Expr>; | Test.kt:30:15:33:3 | { ... } |
9+
| Test.kt:22:4:22:4 | <Expr>; | Test.kt:35:3:35:3 | <Expr>; |
10+
| Test.kt:35:3:35:3 | <Expr>; | Test.kt:38:10:38:10 | x |
11+
| Test.kt:38:10:38:10 | x | Test.kt:38:17:41:3 | { ... } |
12+
| Test.kt:38:10:38:10 | x | Test.kt:43:3:43:3 | <Expr>; |
13+
| Test.kt:81:2:98:2 | Normal Exit | Test.kt:81:2:98:2 | Exit |
14+
| Test.kt:81:25:98:2 | { ... } | Test.kt:86:9:86:12 | true |
15+
| Test.kt:86:9:86:12 | true | Test.kt:88:17:91:4 | { ... } |
16+
| Test.kt:86:9:86:12 | true | Test.kt:92:4:93:9 | <Expr>; |
17+
| Test.kt:92:4:93:9 | <Expr>; | Test.kt:81:2:98:2 | Normal Exit |
18+
| Test.kt:92:4:93:9 | <Expr>; | Test.kt:93:5:93:9 | break |
19+
| Test.kt:92:4:93:9 | <Expr>; | Test.kt:94:4:95:12 | <Expr>; |
20+
| Test.kt:94:4:95:12 | <Expr>; | Test.kt:95:12:95:12 | c |
Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
1-
import default
2-
import semmle.code.java.controlflow.Dominance
1+
import java
32

4-
from Method func, ControlFlowNode dominator, ControlFlowNode node
3+
from Method func, BasicBlock dominator, BasicBlock bb
54
where
6-
iDominates(dominator, node) and
7-
dominator.getEnclosingStmt().getEnclosingCallable() = func and
5+
dominator.immediatelyDominates(bb) and
6+
dominator.getEnclosingCallable() = func and
87
func.getDeclaringType().hasName("Test")
9-
select dominator, node
8+
select dominator, bb

0 commit comments

Comments
 (0)