File tree Expand file tree Collapse file tree 2 files changed +44
-0
lines changed
cpp/ql/test/library-tests/dataflow/dataflow-tests Expand file tree Collapse file tree 2 files changed +44
-0
lines changed Original file line number Diff line number Diff line change @@ -23,6 +23,7 @@ argHasPostUpdate
23
23
| lambdas.cpp:38:2:38:2 | d | ArgumentNode is missing PostUpdateNode. |
24
24
| lambdas.cpp:45:2:45:2 | e | ArgumentNode is missing PostUpdateNode. |
25
25
| test.cpp:67:29:67:35 | source1 | ArgumentNode is missing PostUpdateNode. |
26
+ | test.cpp:813:19:813:35 | * ... | ArgumentNode is missing PostUpdateNode. |
26
27
postWithInFlow
27
28
| BarrierGuard.cpp:49:6:49:6 | x [post update] | PostUpdateNode should not be the target of local flow. |
28
29
| BarrierGuard.cpp:60:7:60:7 | x [post update] | PostUpdateNode should not be the target of local flow. |
@@ -136,6 +137,9 @@ postWithInFlow
136
137
| test.cpp:728:3:728:4 | * ... [post update] | PostUpdateNode should not be the target of local flow. |
137
138
| test.cpp:728:4:728:4 | p [inner post update] | PostUpdateNode should not be the target of local flow. |
138
139
| test.cpp:734:41:734:41 | x [inner post update] | PostUpdateNode should not be the target of local flow. |
140
+ | test.cpp:808:5:808:21 | * ... [post update] | PostUpdateNode should not be the target of local flow. |
141
+ | test.cpp:808:6:808:21 | global_indirect1 [inner post update] | PostUpdateNode should not be the target of local flow. |
142
+ | test.cpp:832:5:832:17 | global_direct [post update] | PostUpdateNode should not be the target of local flow. |
139
143
viableImplInCallContextTooLarge
140
144
uniqueParameterNodeAtPosition
141
145
uniqueParameterNodePosition
Original file line number Diff line number Diff line change @@ -796,4 +796,44 @@ void test() {
796
796
MyStruct a;
797
797
intPointerSource (a.content , a.content );
798
798
indirect_sink (a.content ); // $ ast ir
799
+ }
800
+
801
+ namespace MoreGlobalTests {
802
+ int **global_indirect1;
803
+ int **global_indirect2;
804
+ int **global_direct;
805
+
806
+ void set_indirect1 ()
807
+ {
808
+ *global_indirect1 = indirect_source ();
809
+ }
810
+
811
+ void read_indirect1 () {
812
+ sink (global_indirect1); // clean
813
+ indirect_sink (*global_indirect1); // $ MISSING: ir,ast
814
+ }
815
+
816
+ void set_indirect2 ()
817
+ {
818
+ **global_indirect2 = source ();
819
+ }
820
+
821
+ void read_indirect2 () {
822
+ sink (global_indirect2); // clean
823
+ sink (**global_indirect2); // $ MISSING: ir,ast
824
+ }
825
+
826
+ // overload source with a boolean parameter so
827
+ // that we can define a variant that return an int**.
828
+ int ** source (bool );
829
+
830
+ void set_direct ()
831
+ {
832
+ global_direct = source (true );
833
+ }
834
+
835
+ void read_direct () {
836
+ sink (global_direct); // $ ir MISSING: ast
837
+ indirect_sink (global_direct); // clean
838
+ }
799
839
}
You can’t perform that action at this time.
0 commit comments