Skip to content

Commit ca6e03f

Browse files
committed
Python: Remove callsite refinement ESSA definition when call in a test defining a pi-node.
1 parent ac3421f commit ca6e03f

File tree

9 files changed

+117
-158
lines changed

9 files changed

+117
-158
lines changed

python/ql/src/semmle/python/dataflow/SsaDefinitions.qll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -446,7 +446,7 @@ cached module SsaSource {
446446
use.(NameNode).uses(v) and
447447
call.getArg(0) = use and
448448
not method_call_refinement(v, _, call) and
449-
not test_refinement(v, _, call)
449+
not test_contains(_, call)
450450
}
451451

452452
/** Holds if an attribute is deleted at `def` and `use` is the use of `v` for that deletion */

python/ql/test/library-tests/PointsTo/new/Dataflow.expected

Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -83,9 +83,8 @@
8383
| b_condition.py:34 | x_20 = Pi(x_18) [false] |
8484
| b_condition.py:34 | x_21 = phi(x_19, x_20) |
8585
| b_condition.py:34 | x_22 = ArgumentRefinement(x_21) |
86-
| b_condition.py:36 | x_23 = ArgumentRefinement(x_22) |
87-
| b_condition.py:36 | x_24 = Pi(x_23) [true] |
88-
| b_condition.py:37 | x_25 = ArgumentRefinement(x_24) |
86+
| b_condition.py:36 | x_23 = Pi(x_22) [true] |
87+
| b_condition.py:37 | x_24 = ArgumentRefinement(x_23) |
8988
| b_condition.py:39 | v2_1 = thing() |
9089
| b_condition.py:41 | v2_2 = AttributeAssignment 'x'(v2_1) |
9190
| b_condition.py:43 | v2_3 = Pi(v2_2) [true] |
@@ -133,13 +132,12 @@
133132
| b_condition.py:81 | bar_0 = ScopeEntryDefinition |
134133
| b_condition.py:81 | bar_2 = phi(bar_0, bar_1) |
135134
| b_condition.py:81 | foo_0 = ParameterDefinition |
136-
| b_condition.py:81 | foo_4 = Pi(foo_1) [false] |
137-
| b_condition.py:81 | foo_5 = phi(foo_2, foo_4) |
135+
| b_condition.py:81 | foo_3 = Pi(foo_0) [false] |
136+
| b_condition.py:81 | foo_4 = phi(foo_1, foo_3) |
138137
| b_condition.py:81 | odasa6261_1 = FunctionExpr |
139-
| b_condition.py:82 | foo_1 = ArgumentRefinement(foo_0) |
140138
| b_condition.py:83 | bar_1 = FunctionExpr |
141-
| b_condition.py:83 | foo_2 = Pi(foo_1) [true] |
142-
| b_condition.py:83 | foo_3 = ScopeEntryDefinition |
139+
| b_condition.py:83 | foo_1 = Pi(foo_0) [true] |
140+
| b_condition.py:83 | foo_2 = ScopeEntryDefinition |
143141
| b_condition.py:87 | split_bool1_1 = FunctionExpr |
144142
| b_condition.py:87 | x_0 = ParameterDefinition |
145143
| b_condition.py:87 | y_0 = ParameterDefinition |
@@ -159,10 +157,9 @@
159157
| b_condition.py:99 | x_8 = ArgumentRefinement(x_7) |
160158
| b_condition.py:101 | a_0 = ParameterDefinition |
161159
| b_condition.py:101 | not_or_not_1 = FunctionExpr |
162-
| b_condition.py:102 | a_1 = ArgumentRefinement(a_0) |
163-
| b_condition.py:104 | a_2 = Pi(a_1) [false] |
164-
| b_condition.py:105 | a_3 = Pi(a_2) [false] |
165-
| b_condition.py:107 | a_4 = Pi(a_3) [false] |
160+
| b_condition.py:104 | a_1 = Pi(a_0) [false] |
161+
| b_condition.py:105 | a_2 = Pi(a_1) [false] |
162+
| b_condition.py:107 | a_3 = Pi(a_2) [false] |
166163
| d_globals.py:0 | D_0 = ScopeEntryDefinition |
167164
| d_globals.py:0 | Ugly_0 = ScopeEntryDefinition |
168165
| d_globals.py:0 | X_0 = ScopeEntryDefinition |
@@ -584,23 +581,22 @@
584581
| n_nesting.py:8 | compile_ops_0 = ParameterDefinition |
585582
| n_nesting.py:8 | foo_0 = FunctionExpr |
586583
| n_nesting.py:9 | C_1 = CallsiteRefinement(C_0) |
587-
| n_nesting.py:9 | compile_ops_1 = ArgumentRefinement(compile_ops_0) |
588584
| n_nesting.py:10 | C_5 = ScopeEntryDefinition |
589-
| n_nesting.py:10 | compile_ops_2 = Pi(compile_ops_1) [true] |
590-
| n_nesting.py:10 | compile_ops_3 = ScopeEntryDefinition |
585+
| n_nesting.py:10 | compile_ops_1 = Pi(compile_ops_0) [true] |
586+
| n_nesting.py:10 | compile_ops_2 = ScopeEntryDefinition |
591587
| n_nesting.py:10 | inner_0 = FunctionExpr |
592588
| n_nesting.py:10 | node_def_0 = ParameterDefinition |
593589
| n_nesting.py:11 | C_6 = CallsiteRefinement(C_5) |
594590
| n_nesting.py:11 | node_def_1 = ArgumentRefinement(node_def_0) |
595591
| n_nesting.py:13 | C_7 = ScopeEntryDefinition |
596-
| n_nesting.py:13 | compile_ops_4 = Pi(compile_ops_1) [false] |
597-
| n_nesting.py:13 | compile_ops_5 = ScopeEntryDefinition |
592+
| n_nesting.py:13 | compile_ops_3 = Pi(compile_ops_0) [false] |
593+
| n_nesting.py:13 | compile_ops_4 = ScopeEntryDefinition |
598594
| n_nesting.py:13 | inner_1 = FunctionExpr |
599595
| n_nesting.py:13 | node_def_0 = ParameterDefinition |
600596
| n_nesting.py:14 | C_8 = CallsiteRefinement(C_7) |
601597
| n_nesting.py:14 | node_def_1 = ArgumentRefinement(node_def_0) |
602598
| n_nesting.py:15 | attrs_0 = Dict |
603-
| n_nesting.py:16 | compile_ops_6 = phi(compile_ops_2, compile_ops_4) |
599+
| n_nesting.py:16 | compile_ops_5 = phi(compile_ops_1, compile_ops_3) |
604600
| n_nesting.py:16 | inner_2 = phi(inner_0, inner_1) |
605601
| n_nesting.py:22 | C_9 = ScopeEntryDefinition |
606602
| n_nesting.py:22 | f1_0 = FunctionExpr |

python/ql/test/library-tests/PointsTo/new/Definitions.expected

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,6 @@
6666
| b_condition.py:34 | Local Variable x | ArgumentRefinement |
6767
| b_condition.py:34 | Local Variable x | PhiFunction |
6868
| b_condition.py:34 | Local Variable x | PyEdgeRefinement |
69-
| b_condition.py:36 | Local Variable x | ArgumentRefinement |
7069
| b_condition.py:36 | Local Variable x | PyEdgeRefinement |
7170
| b_condition.py:37 | Local Variable x | ArgumentRefinement |
7271
| b_condition.py:39 | Global Variable v2 | AssignmentDefinition |
@@ -116,7 +115,6 @@
116115
| b_condition.py:81 | Local Variable foo | ParameterDefinition |
117116
| b_condition.py:81 | Local Variable foo | PhiFunction |
118117
| b_condition.py:81 | Local Variable foo | PyEdgeRefinement |
119-
| b_condition.py:82 | Local Variable foo | ArgumentRefinement |
120118
| b_condition.py:83 | Local Variable bar | AssignmentDefinition |
121119
| b_condition.py:83 | Local Variable foo | PyEdgeRefinement |
122120
| b_condition.py:83 | Local Variable foo | ScopeEntryDefinition |
@@ -135,7 +133,6 @@
135133
| b_condition.py:99 | Local Variable x | ArgumentRefinement |
136134
| b_condition.py:101 | Global Variable not_or_not | AssignmentDefinition |
137135
| b_condition.py:101 | Local Variable a | ParameterDefinition |
138-
| b_condition.py:102 | Local Variable a | ArgumentRefinement |
139136
| b_condition.py:104 | Local Variable a | PyEdgeRefinement |
140137
| b_condition.py:105 | Local Variable a | PyEdgeRefinement |
141138
| b_condition.py:107 | Local Variable a | PyEdgeRefinement |

python/ql/test/library-tests/PointsTo/new/SSA.expected

Lines changed: 35 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -76,12 +76,10 @@
7676
| b_condition.py:34 | x_21 = phi(x_19, x_20) | int 7 | builtin-class int |
7777
| b_condition.py:34 | x_22 = ArgumentRefinement(x_21) | int 1 | builtin-class int |
7878
| b_condition.py:34 | x_22 = ArgumentRefinement(x_21) | int 7 | builtin-class int |
79-
| b_condition.py:36 | x_23 = ArgumentRefinement(x_22) | int 1 | builtin-class int |
80-
| b_condition.py:36 | x_23 = ArgumentRefinement(x_22) | int 7 | builtin-class int |
81-
| b_condition.py:36 | x_24 = Pi(x_23) [true] | int 1 | builtin-class int |
82-
| b_condition.py:36 | x_24 = Pi(x_23) [true] | int 7 | builtin-class int |
83-
| b_condition.py:37 | x_25 = ArgumentRefinement(x_24) | int 1 | builtin-class int |
84-
| b_condition.py:37 | x_25 = ArgumentRefinement(x_24) | int 7 | builtin-class int |
79+
| b_condition.py:36 | x_23 = Pi(x_22) [true] | int 1 | builtin-class int |
80+
| b_condition.py:36 | x_23 = Pi(x_22) [true] | int 7 | builtin-class int |
81+
| b_condition.py:37 | x_24 = ArgumentRefinement(x_23) | int 1 | builtin-class int |
82+
| b_condition.py:37 | x_24 = ArgumentRefinement(x_23) | int 7 | builtin-class int |
8583
| b_condition.py:50 | g_1 = FunctionExpr | Function g | builtin-class function |
8684
| b_condition.py:55 | loop_1 = FunctionExpr | Function loop | builtin-class function |
8785
| b_condition.py:55 | v_0 = ScopeEntryDefinition | *UNDEFINED* | *UNKNOWN TYPE* |
@@ -102,12 +100,11 @@
102100
| b_condition.py:81 | bar_2 = phi(bar_0, bar_1) | *UNDEFINED* | *UNKNOWN TYPE* |
103101
| b_condition.py:81 | bar_2 = phi(bar_0, bar_1) | Function bar | builtin-class function |
104102
| b_condition.py:81 | foo_0 = ParameterDefinition | bool True | builtin-class bool |
105-
| b_condition.py:81 | foo_4 = Pi(foo_1) [false] | bool True | builtin-class bool |
106-
| b_condition.py:81 | foo_5 = phi(foo_2, foo_4) | bool True | builtin-class bool |
103+
| b_condition.py:81 | foo_3 = Pi(foo_0) [false] | bool True | builtin-class bool |
104+
| b_condition.py:81 | foo_4 = phi(foo_1, foo_3) | bool True | builtin-class bool |
107105
| b_condition.py:81 | odasa6261_1 = FunctionExpr | Function odasa6261 | builtin-class function |
108-
| b_condition.py:82 | foo_1 = ArgumentRefinement(foo_0) | bool True | builtin-class bool |
109106
| b_condition.py:83 | bar_1 = FunctionExpr | Function bar | builtin-class function |
110-
| b_condition.py:83 | foo_3 = ScopeEntryDefinition | *UNDEFINED* | *UNKNOWN TYPE* |
107+
| b_condition.py:83 | foo_2 = ScopeEntryDefinition | *UNDEFINED* | *UNKNOWN TYPE* |
111108
| b_condition.py:87 | split_bool1_1 = FunctionExpr | Function split_bool1 | builtin-class function |
112109
| b_condition.py:87 | x_0 = ParameterDefinition | NoneType None | builtin-class NoneType |
113110
| b_condition.py:87 | y_0 = ParameterDefinition | NoneType None | builtin-class NoneType |
@@ -120,10 +117,9 @@
120117
| b_condition.py:97 | x_3 = ArgumentRefinement(x_2) | NoneType None | builtin-class NoneType |
121118
| b_condition.py:101 | a_0 = ParameterDefinition | a | builtin-class tuple |
122119
| b_condition.py:101 | not_or_not_1 = FunctionExpr | Function not_or_not | builtin-class function |
123-
| b_condition.py:102 | a_1 = ArgumentRefinement(a_0) | a | builtin-class tuple |
124-
| b_condition.py:104 | a_2 = Pi(a_1) [false] | a | builtin-class tuple |
125-
| b_condition.py:105 | a_3 = Pi(a_2) [false] | a | builtin-class tuple |
126-
| b_condition.py:107 | a_4 = Pi(a_3) [false] | a | builtin-class tuple |
120+
| b_condition.py:104 | a_1 = Pi(a_0) [false] | a | builtin-class tuple |
121+
| b_condition.py:105 | a_2 = Pi(a_1) [false] | a | builtin-class tuple |
122+
| b_condition.py:107 | a_3 = Pi(a_2) [false] | a | builtin-class tuple |
127123
| c_tests.py:0 | __name___0 = ScopeEntryDefinition | 'code.c_tests' | builtin-class str |
128124
| c_tests.py:0 | __package___0 = ScopeEntryDefinition | *UNDEFINED* | *UNKNOWN TYPE* |
129125
| c_tests.py:4 | f_0 = FunctionExpr | Function f | builtin-class function |
@@ -134,42 +130,32 @@
134130
| c_tests.py:15 | x_2 = IfExp | int 1 | builtin-class int |
135131
| c_tests.py:21 | x_3 = IfExp | List | builtin-class list |
136132
| c_tests.py:21 | x_3 = IfExp | Tuple | builtin-class tuple |
137-
| c_tests.py:23 | x_4 = ArgumentRefinement(x_3) | List | builtin-class list |
138-
| c_tests.py:23 | x_4 = ArgumentRefinement(x_3) | Tuple | builtin-class tuple |
139-
| c_tests.py:24 | x_5 = Pi(x_4) [true] | List | builtin-class list |
140-
| c_tests.py:24 | x_5 = Pi(x_4) [true] | Tuple | builtin-class tuple |
141-
| c_tests.py:26 | x_7 = phi(x_5, x_6) | List | builtin-class list |
142-
| c_tests.py:26 | x_7 = phi(x_5, x_6) | Tuple | builtin-class tuple |
143-
| c_tests.py:26 | x_8 = ArgumentRefinement(x_7) | List | builtin-class list |
144-
| c_tests.py:26 | x_8 = ArgumentRefinement(x_7) | Tuple | builtin-class tuple |
145-
| c_tests.py:27 | x_9 = Pi(x_8) [true] | List | builtin-class list |
146-
| c_tests.py:27 | x_9 = Pi(x_8) [true] | Tuple | builtin-class tuple |
147-
| c_tests.py:29 | x_10 = Pi(x_8) [false] | Tuple | builtin-class tuple |
148-
| c_tests.py:29 | x_11 = phi(x_9, x_10) | List | builtin-class list |
149-
| c_tests.py:29 | x_11 = phi(x_9, x_10) | Tuple | builtin-class tuple |
150-
| c_tests.py:29 | x_12 = ArgumentRefinement(x_11) | List | builtin-class list |
151-
| c_tests.py:29 | x_12 = ArgumentRefinement(x_11) | Tuple | builtin-class tuple |
152-
| c_tests.py:30 | x_13 = Pi(x_12) [true] | Tuple | builtin-class tuple |
153-
| c_tests.py:32 | x_14 = Pi(x_12) [false] | List | builtin-class list |
154-
| c_tests.py:32 | x_15 = phi(x_13, x_14) | List | builtin-class list |
155-
| c_tests.py:32 | x_15 = phi(x_13, x_14) | Tuple | builtin-class tuple |
133+
| c_tests.py:24 | x_4 = Pi(x_3) [true] | List | builtin-class list |
134+
| c_tests.py:24 | x_4 = Pi(x_3) [true] | Tuple | builtin-class tuple |
135+
| c_tests.py:26 | x_6 = phi(x_4, x_5) | List | builtin-class list |
136+
| c_tests.py:26 | x_6 = phi(x_4, x_5) | Tuple | builtin-class tuple |
137+
| c_tests.py:27 | x_7 = Pi(x_6) [true] | List | builtin-class list |
138+
| c_tests.py:27 | x_7 = Pi(x_6) [true] | Tuple | builtin-class tuple |
139+
| c_tests.py:29 | x_8 = Pi(x_6) [false] | Tuple | builtin-class tuple |
140+
| c_tests.py:29 | x_9 = phi(x_7, x_8) | List | builtin-class list |
141+
| c_tests.py:29 | x_9 = phi(x_7, x_8) | Tuple | builtin-class tuple |
142+
| c_tests.py:30 | x_10 = Pi(x_9) [true] | Tuple | builtin-class tuple |
143+
| c_tests.py:32 | x_11 = Pi(x_9) [false] | List | builtin-class list |
144+
| c_tests.py:32 | x_12 = phi(x_10, x_11) | List | builtin-class list |
145+
| c_tests.py:32 | x_12 = phi(x_10, x_11) | Tuple | builtin-class tuple |
156146
| c_tests.py:56 | others_0 = FunctionExpr | Function others | builtin-class function |
157-
| c_tests.py:56 | x_8 = Pi(x_6) [false] | int 0 | builtin-class int |
158-
| c_tests.py:56 | x_9 = phi(x_7, x_8) | builtin-class float | builtin-class type |
159-
| c_tests.py:56 | x_9 = phi(x_7, x_8) | int 0 | builtin-class int |
147+
| c_tests.py:56 | x_6 = Pi(x_4) [false] | int 0 | builtin-class int |
148+
| c_tests.py:56 | x_7 = phi(x_5, x_6) | builtin-class float | builtin-class type |
149+
| c_tests.py:56 | x_7 = phi(x_5, x_6) | int 0 | builtin-class int |
160150
| c_tests.py:58 | x_0 = IfExp | builtin-class bool | builtin-class type |
161151
| c_tests.py:58 | x_0 = IfExp | builtin-class type | builtin-class type |
162152
| c_tests.py:63 | x_1 = IfExp | builtin-class float | builtin-class type |
163153
| c_tests.py:63 | x_1 = IfExp | int 0 | builtin-class int |
164-
| c_tests.py:65 | x_2 = ArgumentRefinement(x_1) | builtin-class float | builtin-class type |
165-
| c_tests.py:65 | x_2 = ArgumentRefinement(x_1) | int 0 | builtin-class int |
166-
| c_tests.py:66 | x_3 = Pi(x_2) [true] | int 0 | builtin-class int |
167-
| c_tests.py:68 | x_4 = Pi(x_2) [false] | builtin-class float | builtin-class type |
168-
| c_tests.py:68 | x_5 = phi(x_3, x_4) | builtin-class float | builtin-class type |
169-
| c_tests.py:68 | x_5 = phi(x_3, x_4) | int 0 | builtin-class int |
170-
| c_tests.py:68 | x_6 = ArgumentRefinement(x_5) | builtin-class float | builtin-class type |
171-
| c_tests.py:68 | x_6 = ArgumentRefinement(x_5) | int 0 | builtin-class int |
172-
| c_tests.py:69 | x_7 = Pi(x_6) [true] | builtin-class float | builtin-class type |
154+
| c_tests.py:66 | x_2 = Pi(x_1) [true] | int 0 | builtin-class int |
155+
| c_tests.py:68 | x_3 = Pi(x_1) [false] | builtin-class float | builtin-class type |
156+
| c_tests.py:68 | x_4 = phi(x_2, x_3) | builtin-class float | builtin-class type |
157+
| c_tests.py:68 | x_4 = phi(x_2, x_3) | int 0 | builtin-class int |
158+
| c_tests.py:69 | x_5 = Pi(x_4) [true] | builtin-class float | builtin-class type |
173159
| c_tests.py:71 | compound_0 = FunctionExpr | Function compound | builtin-class function |
174160
| c_tests.py:71 | x_0 = ParameterDefinition | int 1 | builtin-class int |
175161
| c_tests.py:71 | y_0 = ParameterDefinition | int 0 | builtin-class int |
@@ -482,18 +468,17 @@
482468
| n_nesting.py:8 | compile_ops_0 = ParameterDefinition | bool True | builtin-class bool |
483469
| n_nesting.py:8 | foo_0 = FunctionExpr | Function foo | builtin-class function |
484470
| n_nesting.py:9 | C_1 = CallsiteRefinement(C_0) | int 1 | builtin-class int |
485-
| n_nesting.py:9 | compile_ops_1 = ArgumentRefinement(compile_ops_0) | bool True | builtin-class bool |
486471
| n_nesting.py:10 | C_5 = ScopeEntryDefinition | int 1 | builtin-class int |
487-
| n_nesting.py:10 | compile_ops_3 = ScopeEntryDefinition | *UNDEFINED* | *UNKNOWN TYPE* |
472+
| n_nesting.py:10 | compile_ops_2 = ScopeEntryDefinition | *UNDEFINED* | *UNKNOWN TYPE* |
488473
| n_nesting.py:10 | inner_0 = FunctionExpr | Function inner | builtin-class function |
489474
| n_nesting.py:11 | C_6 = CallsiteRefinement(C_5) | int 1 | builtin-class int |
490475
| n_nesting.py:13 | C_7 = ScopeEntryDefinition | int 1 | builtin-class int |
491-
| n_nesting.py:13 | compile_ops_4 = Pi(compile_ops_1) [false] | bool True | builtin-class bool |
492-
| n_nesting.py:13 | compile_ops_5 = ScopeEntryDefinition | *UNDEFINED* | *UNKNOWN TYPE* |
476+
| n_nesting.py:13 | compile_ops_3 = Pi(compile_ops_0) [false] | bool True | builtin-class bool |
477+
| n_nesting.py:13 | compile_ops_4 = ScopeEntryDefinition | *UNDEFINED* | *UNKNOWN TYPE* |
493478
| n_nesting.py:13 | inner_1 = FunctionExpr | Function inner | builtin-class function |
494479
| n_nesting.py:14 | C_8 = CallsiteRefinement(C_7) | int 1 | builtin-class int |
495480
| n_nesting.py:15 | attrs_0 = Dict | Dict | builtin-class dict |
496-
| n_nesting.py:16 | compile_ops_6 = phi(compile_ops_2, compile_ops_4) | bool True | builtin-class bool |
481+
| n_nesting.py:16 | compile_ops_5 = phi(compile_ops_1, compile_ops_3) | bool True | builtin-class bool |
497482
| n_nesting.py:16 | inner_2 = phi(inner_0, inner_1) | Function inner | builtin-class function |
498483
| n_nesting.py:22 | C_9 = ScopeEntryDefinition | int 1 | builtin-class int |
499484
| n_nesting.py:22 | f1_0 = FunctionExpr | Function f1 | builtin-class function |

python/ql/test/library-tests/PointsTo/new/SourceNodeDefinitions.expected

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,6 @@
7474
| b_condition.py:31 | Local Variable x | ControlFlowNode for x | definition |
7575
| b_condition.py:33 | Local Variable x | ControlFlowNode for x | definition |
7676
| b_condition.py:34 | Local Variable x | ControlFlowNode for use() | refinement |
77-
| b_condition.py:36 | Local Variable x | ControlFlowNode for isinstance() | refinement |
7877
| b_condition.py:37 | Local Variable x | ControlFlowNode for use() | refinement |
7978
| b_condition.py:39 | Global Variable v2 | ControlFlowNode for v2 | definition |
8079
| b_condition.py:41 | Global Variable v2 | ControlFlowNode for Attribute | refinement |
@@ -100,7 +99,6 @@
10099
| b_condition.py:81 | Global Variable odasa6261 | ControlFlowNode for odasa6261 | definition |
101100
| b_condition.py:81 | Local Variable bar | Entry node for Function odasa6261 | definition |
102101
| b_condition.py:81 | Local Variable foo | ControlFlowNode for foo | definition |
103-
| b_condition.py:82 | Local Variable foo | ControlFlowNode for callable() | refinement |
104102
| b_condition.py:83 | Local Variable bar | ControlFlowNode for bar | definition |
105103
| b_condition.py:83 | Local Variable foo | Entry node for Function bar | definition |
106104
| b_condition.py:87 | Global Variable split_bool1 | ControlFlowNode for split_bool1 | definition |
@@ -117,4 +115,3 @@
117115
| b_condition.py:101 | Global Variable not_or_not | ControlFlowNode for not_or_not | definition |
118116
| b_condition.py:101 | Local Variable a | ControlFlowNode for a | definition |
119117
| b_condition.py:101 | Local Variable a | Entry node for Function not_or_not | definition |
120-
| b_condition.py:102 | Local Variable a | ControlFlowNode for isinstance() | refinement |

python/ql/test/library-tests/PointsTo/new/SsaUses.expected

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@
6767
| b_condition.py:0 | odasa6261_1 | Exit node for Module code.b_condition |
6868
| b_condition.py:0 | split_bool1_1 | Exit node for Module code.b_condition |
6969
| b_condition.py:0 | v2_5 | Exit node for Module code.b_condition |
70-
| b_condition.py:4 | x_25 | Exit node for Function f |
70+
| b_condition.py:4 | x_24 | Exit node for Function f |
7171
| b_condition.py:4 | y_0 | Exit node for Function f |
7272
| b_condition.py:7 | x_0 | ControlFlowNode for x |
7373
| b_condition.py:9 | x_3 | ControlFlowNode for x |
@@ -82,7 +82,7 @@
8282
| b_condition.py:32 | x_18 | ControlFlowNode for x |
8383
| b_condition.py:34 | x_21 | ControlFlowNode for x |
8484
| b_condition.py:36 | x_22 | ControlFlowNode for x |
85-
| b_condition.py:37 | x_24 | ControlFlowNode for x |
85+
| b_condition.py:37 | x_23 | ControlFlowNode for x |
8686
| b_condition.py:39 | __name___0 | ControlFlowNode for thing() |
8787
| b_condition.py:39 | __package___0 | ControlFlowNode for thing() |
8888
| b_condition.py:39 | double_attr_check_0 | ControlFlowNode for thing() |
@@ -144,9 +144,9 @@
144144
| b_condition.py:77 | t_0 | ControlFlowNode for t |
145145
| b_condition.py:79 | t_3 | ControlFlowNode for t |
146146
| b_condition.py:81 | bar_2 | Exit node for Function odasa6261 |
147-
| b_condition.py:81 | foo_5 | Exit node for Function odasa6261 |
147+
| b_condition.py:81 | foo_4 | Exit node for Function odasa6261 |
148148
| b_condition.py:82 | foo_0 | ControlFlowNode for foo |
149-
| b_condition.py:84 | foo_3 | ControlFlowNode for foo |
149+
| b_condition.py:84 | foo_2 | ControlFlowNode for foo |
150150
| b_condition.py:87 | x_3 | Exit node for Function split_bool1 |
151151
| b_condition.py:87 | x_8 | Exit node for Function split_bool1 |
152152
| b_condition.py:87 | y_3 | Exit node for Function split_bool1 |
@@ -164,10 +164,10 @@
164164
| b_condition.py:96 | y_5 | ControlFlowNode for y |
165165
| b_condition.py:97 | x_2 | ControlFlowNode for x |
166166
| b_condition.py:99 | x_7 | ControlFlowNode for x |
167-
| b_condition.py:101 | a_4 | Exit node for Function not_or_not |
167+
| b_condition.py:101 | a_3 | Exit node for Function not_or_not |
168168
| b_condition.py:102 | a_0 | ControlFlowNode for a |
169-
| b_condition.py:104 | a_2 | ControlFlowNode for a |
170-
| b_condition.py:105 | a_3 | ControlFlowNode for a |
169+
| b_condition.py:104 | a_1 | ControlFlowNode for a |
170+
| b_condition.py:105 | a_2 | ControlFlowNode for a |
171171
| d_globals.py:0 | D_1 | Exit node for Module code.d_globals |
172172
| d_globals.py:0 | Ugly_1 | Exit node for Module code.d_globals |
173173
| d_globals.py:0 | X_1 | Exit node for Module code.d_globals |

0 commit comments

Comments
 (0)