@@ -1155,4 +1155,101 @@ namespace conflation_regression {
11551155 }
11561156}
11571157
1158- int recursion = (sink(recursion), source()); // clean
1158+ int recursion = (sink(recursion), source()); // clean
1159+
1160+
1161+ namespace globals_without_explicit_def {
1162+ int * global_int_ptr;
1163+
1164+ void set (int * p) { // $ ast-def=p ir-def=*p
1165+ *p = source ();
1166+ }
1167+
1168+ void test1 () {
1169+ set (global_int_ptr);
1170+ indirect_sink (global_int_ptr); // $ ir,ast
1171+ }
1172+
1173+ void test2 () {
1174+ set (global_int_ptr);
1175+ sink (*global_int_ptr); // $ ir MISSING: ast
1176+ }
1177+
1178+ void calls_set () {
1179+ set (global_int_ptr);
1180+ }
1181+
1182+ void test3 () {
1183+ calls_set ();
1184+ indirect_sink (global_int_ptr); // $ MISSING: ast,ir
1185+ }
1186+
1187+ void test4 () {
1188+ calls_set ();
1189+ sink (*global_int_ptr); // $ MISSING: ast,ir
1190+ }
1191+
1192+ int ** global_int_ptr_ptr;
1193+
1194+ void set_indirect (int ** p) { // $ ast-def=p ir-def=*p ir-def=**p
1195+ *p = indirect_source ();
1196+ }
1197+
1198+ void test5 () {
1199+ set_indirect (global_int_ptr_ptr);
1200+ indirect_sink (global_int_ptr_ptr); // $ ir,ast
1201+ sink (global_int_ptr_ptr); // $ SPURIOUS: ast
1202+ }
1203+
1204+ void test6 () {
1205+ set_indirect (global_int_ptr_ptr);
1206+ indirect_sink (*global_int_ptr_ptr); // $ ir MISSING: ast
1207+ sink (*global_int_ptr_ptr);
1208+ indirect_sink (**global_int_ptr_ptr);
1209+ sink (**global_int_ptr_ptr); // $ ir
1210+ }
1211+
1212+ void calls_set_indirect () {
1213+ set_indirect (global_int_ptr_ptr);
1214+ }
1215+
1216+ void test7 () {
1217+ calls_set_indirect ();
1218+ indirect_sink (global_int_ptr_ptr); // $ MISSING: ast,ir
1219+ sink (global_int_ptr_ptr); // $ MISSING: ast
1220+ }
1221+
1222+ void test8 () {
1223+ calls_set_indirect ();
1224+ indirect_sink (*global_int_ptr_ptr); // $ MISSING: ast,ir
1225+ sink (*global_int_ptr_ptr);
1226+ indirect_sink (**global_int_ptr_ptr);
1227+ sink (**global_int_ptr_ptr); // $ MISSING: ast,ir
1228+ }
1229+
1230+ int global_int_array[10 ];
1231+
1232+ void test9 () {
1233+ set (global_int_array);
1234+ indirect_sink (global_int_array); // $ ir,ast
1235+ }
1236+
1237+ void test10 () {
1238+ set (global_int_array);
1239+ sink (*global_int_array); // $ ir,ast
1240+ }
1241+
1242+ void calls_set_array () {
1243+ set (global_int_array);
1244+ }
1245+
1246+ void test11 () {
1247+ calls_set_array ();
1248+ indirect_sink (global_int_array); // $ MISSING: ast,ir
1249+ }
1250+
1251+ void test12 () {
1252+ calls_set_array ();
1253+ sink (*global_int_array); // $ MISSING: ast,ir
1254+ }
1255+ }
0 commit comments