diff --git a/cpp/ql/test/library-tests/dataflow/dataflow-tests/dataflow-ir-consistency.expected b/cpp/ql/test/library-tests/dataflow/dataflow-tests/dataflow-ir-consistency.expected index f6e5429946ce..8df6802bcb22 100644 --- a/cpp/ql/test/library-tests/dataflow/dataflow-tests/dataflow-ir-consistency.expected +++ b/cpp/ql/test/library-tests/dataflow/dataflow-tests/dataflow-ir-consistency.expected @@ -15,7 +15,6 @@ postIsNotPre | flowOut.cpp:84:3:84:14 | access to array indirection | PostUpdateNode should not equal its pre-update node. | postHasUniquePre uniquePostUpdate -| example.c:24:13:24:18 | coords indirection | Node has multiple PostUpdateNodes. | postIsInSameCallable reverseRead argHasPostUpdate diff --git a/cpp/ql/test/library-tests/dataflow/fields/dataflow-ir-consistency.expected b/cpp/ql/test/library-tests/dataflow/fields/dataflow-ir-consistency.expected index 4b74de5a825f..10851a53b991 100644 --- a/cpp/ql/test/library-tests/dataflow/fields/dataflow-ir-consistency.expected +++ b/cpp/ql/test/library-tests/dataflow/fields/dataflow-ir-consistency.expected @@ -14,31 +14,6 @@ localCallNodes postIsNotPre postHasUniquePre uniquePostUpdate -| aliasing.cpp:70:11:70:11 | definition of w indirection | Node has multiple PostUpdateNodes. | -| aliasing.cpp:77:11:77:11 | definition of w indirection | Node has multiple PostUpdateNodes. | -| aliasing.cpp:84:11:84:11 | definition of w indirection | Node has multiple PostUpdateNodes. | -| aliasing.cpp:91:11:91:11 | definition of w indirection | Node has multiple PostUpdateNodes. | -| clearning.cpp:54:3:54:3 | s indirection | Node has multiple PostUpdateNodes. | -| clearning.cpp:61:3:61:3 | s indirection | Node has multiple PostUpdateNodes. | -| clearning.cpp:90:3:90:3 | s indirection | Node has multiple PostUpdateNodes. | -| clearning.cpp:104:2:104:2 | s indirection | Node has multiple PostUpdateNodes. | -| clearning.cpp:111:4:111:4 | s indirection | Node has multiple PostUpdateNodes. | -| clearning.cpp:118:2:118:2 | s indirection | Node has multiple PostUpdateNodes. | -| clearning.cpp:125:2:125:2 | s indirection | Node has multiple PostUpdateNodes. | -| clearning.cpp:132:2:132:2 | s indirection | Node has multiple PostUpdateNodes. | -| clearning.cpp:139:4:139:4 | s indirection | Node has multiple PostUpdateNodes. | -| clearning.cpp:165:3:165:3 | s indirection | Node has multiple PostUpdateNodes. | -| clearning.cpp:172:3:172:3 | s indirection | Node has multiple PostUpdateNodes. | -| complex.cpp:22:3:22:5 | this indirection | Node has multiple PostUpdateNodes. | -| complex.cpp:25:7:25:7 | this indirection | Node has multiple PostUpdateNodes. | -| complex.cpp:42:10:42:14 | inner indirection | Node has multiple PostUpdateNodes. | -| complex.cpp:43:10:43:14 | inner indirection | Node has multiple PostUpdateNodes. | -| complex.cpp:53:6:53:10 | inner indirection | Node has multiple PostUpdateNodes. | -| complex.cpp:54:6:54:10 | inner indirection | Node has multiple PostUpdateNodes. | -| complex.cpp:55:6:55:10 | inner indirection | Node has multiple PostUpdateNodes. | -| complex.cpp:56:6:56:10 | inner indirection | Node has multiple PostUpdateNodes. | -| struct_init.c:26:16:26:20 | definition of outer indirection | Node has multiple PostUpdateNodes. | -| struct_init.c:41:16:41:20 | definition of outer indirection | Node has multiple PostUpdateNodes. | postIsInSameCallable reverseRead argHasPostUpdate diff --git a/cpp/ql/test/library-tests/dataflow/fields/ir-path-flow.expected b/cpp/ql/test/library-tests/dataflow/fields/ir-path-flow.expected index 0f5ccbe3f7e9..c7f56f7c165f 100644 --- a/cpp/ql/test/library-tests/dataflow/fields/ir-path-flow.expected +++ b/cpp/ql/test/library-tests/dataflow/fields/ir-path-flow.expected @@ -1,8 +1,8 @@ edges | A.cpp:23:10:23:10 | c | A.cpp:25:7:25:17 | ... = ... | -| A.cpp:25:7:25:17 | ... = ... | A.cpp:25:13:25:13 | this indirection [post update] [c] | +| A.cpp:25:7:25:17 | ... = ... | A.cpp:25:7:25:10 | this indirection [post update] [c] | | A.cpp:27:17:27:17 | c | A.cpp:27:22:27:32 | ... = ... | -| A.cpp:27:22:27:32 | ... = ... | A.cpp:27:28:27:28 | this indirection [post update] [c] | +| A.cpp:27:22:27:32 | ... = ... | A.cpp:27:22:27:25 | this indirection [post update] [c] | | A.cpp:28:8:28:10 | this indirection [c] | A.cpp:28:23:28:26 | this indirection [c] | | A.cpp:28:23:28:26 | this indirection [c] | A.cpp:28:29:28:29 | c | | A.cpp:28:29:28:29 | c | A.cpp:28:8:28:10 | get indirection | @@ -50,8 +50,8 @@ edges | A.cpp:90:15:90:15 | c | A.cpp:27:17:27:17 | c | | A.cpp:90:15:90:15 | c | A.cpp:90:7:90:8 | set output argument [c] | | A.cpp:98:12:98:18 | new | A.cpp:100:5:100:13 | ... = ... | -| A.cpp:100:5:100:13 | ... = ... | A.cpp:100:9:100:9 | c1 indirection [post update] [a] | -| A.cpp:100:9:100:9 | c1 indirection [post update] [a] | A.cpp:101:8:101:9 | c1 indirection [a] | +| A.cpp:100:5:100:6 | c1 indirection [post update] [a] | A.cpp:101:8:101:9 | c1 indirection [a] | +| A.cpp:100:5:100:13 | ... = ... | A.cpp:100:5:100:6 | c1 indirection [post update] [a] | | A.cpp:101:8:101:9 | c1 indirection [a] | A.cpp:103:14:103:14 | c indirection [a] | | A.cpp:103:14:103:14 | c indirection [a] | A.cpp:107:12:107:13 | c1 indirection [a] | | A.cpp:103:14:103:14 | c indirection [a] | A.cpp:120:12:120:13 | c1 indirection [a] | @@ -64,15 +64,15 @@ edges | A.cpp:131:8:131:8 | f7 output argument [c] | A.cpp:132:10:132:10 | b indirection [c] | | A.cpp:132:10:132:10 | b indirection [c] | A.cpp:132:10:132:13 | c | | A.cpp:140:13:140:13 | b | A.cpp:143:7:143:31 | ... = ... | -| A.cpp:142:7:142:20 | ... = ... | A.cpp:142:10:142:10 | b indirection [post update] [c] | -| A.cpp:142:10:142:10 | b indirection [post update] [c] | A.cpp:143:7:143:31 | ... = ... indirection [c] | -| A.cpp:142:10:142:10 | b indirection [post update] [c] | A.cpp:151:18:151:18 | D output argument [c] | +| A.cpp:142:7:142:7 | b indirection [post update] [c] | A.cpp:143:7:143:31 | ... = ... indirection [c] | +| A.cpp:142:7:142:7 | b indirection [post update] [c] | A.cpp:151:18:151:18 | D output argument [c] | +| A.cpp:142:7:142:20 | ... = ... | A.cpp:142:7:142:7 | b indirection [post update] [c] | | A.cpp:142:14:142:20 | new | A.cpp:142:7:142:20 | ... = ... | -| A.cpp:143:7:143:31 | ... = ... | A.cpp:143:13:143:13 | this indirection [post update] [b] | -| A.cpp:143:7:143:31 | ... = ... | A.cpp:143:13:143:13 | this indirection [post update] [b] | -| A.cpp:143:7:143:31 | ... = ... indirection [c] | A.cpp:143:13:143:13 | this indirection [post update] [b indirection, c] | -| A.cpp:143:13:143:13 | this indirection [post update] [b indirection, c] | A.cpp:151:12:151:24 | call to D [b indirection, c] | -| A.cpp:143:13:143:13 | this indirection [post update] [b] | A.cpp:151:12:151:24 | call to D [b] | +| A.cpp:143:7:143:10 | this indirection [post update] [b indirection, c] | A.cpp:151:12:151:24 | call to D [b indirection, c] | +| A.cpp:143:7:143:10 | this indirection [post update] [b] | A.cpp:151:12:151:24 | call to D [b] | +| A.cpp:143:7:143:31 | ... = ... | A.cpp:143:7:143:10 | this indirection [post update] [b] | +| A.cpp:143:7:143:31 | ... = ... | A.cpp:143:7:143:10 | this indirection [post update] [b] | +| A.cpp:143:7:143:31 | ... = ... indirection [c] | A.cpp:143:7:143:10 | this indirection [post update] [b indirection, c] | | A.cpp:143:25:143:31 | new | A.cpp:143:7:143:31 | ... = ... | | A.cpp:150:12:150:18 | new | A.cpp:151:18:151:18 | b | | A.cpp:151:12:151:24 | call to D [b indirection, c] | A.cpp:153:10:153:10 | d indirection [b indirection, c] | @@ -107,8 +107,8 @@ edges | A.cpp:181:32:181:35 | next indirection [head] | A.cpp:184:7:184:23 | ... = ... indirection [head] | | A.cpp:181:32:181:35 | next indirection [next indirection, head] | A.cpp:184:7:184:23 | ... = ... indirection [next indirection, head] | | A.cpp:183:7:183:20 | ... = ... | A.cpp:183:7:183:10 | this indirection [post update] [head] | -| A.cpp:184:7:184:23 | ... = ... indirection [head] | A.cpp:184:13:184:16 | this indirection [post update] [next indirection, head] | -| A.cpp:184:7:184:23 | ... = ... indirection [next indirection, head] | A.cpp:184:13:184:16 | this indirection [post update] [next indirection, next indirection, head] | +| A.cpp:184:7:184:23 | ... = ... indirection [head] | A.cpp:184:7:184:10 | this indirection [post update] [next indirection, head] | +| A.cpp:184:7:184:23 | ... = ... indirection [next indirection, head] | A.cpp:184:7:184:10 | this indirection [post update] [next indirection, next indirection, head] | | B.cpp:6:15:6:24 | new | B.cpp:7:25:7:25 | e | | B.cpp:7:16:7:35 | call to Box1 [elem1] | B.cpp:8:25:8:26 | b1 indirection [elem1] | | B.cpp:7:25:7:25 | e | B.cpp:7:16:7:35 | call to Box1 [elem1] | @@ -129,21 +129,21 @@ edges | B.cpp:19:14:19:17 | box1 indirection [elem2] | B.cpp:19:10:19:24 | elem2 | | B.cpp:33:16:33:17 | e1 | B.cpp:35:7:35:22 | ... = ... | | B.cpp:33:26:33:27 | e2 | B.cpp:36:7:36:22 | ... = ... | -| B.cpp:35:7:35:22 | ... = ... | B.cpp:35:13:35:17 | this indirection [post update] [elem1] | -| B.cpp:36:7:36:22 | ... = ... | B.cpp:36:13:36:17 | this indirection [post update] [elem2] | +| B.cpp:35:7:35:22 | ... = ... | B.cpp:35:7:35:10 | this indirection [post update] [elem1] | +| B.cpp:36:7:36:22 | ... = ... | B.cpp:36:7:36:10 | this indirection [post update] [elem2] | | B.cpp:44:16:44:17 | b1 indirection [elem1] | B.cpp:46:7:46:21 | ... = ... indirection [elem1] | | B.cpp:44:16:44:17 | b1 indirection [elem2] | B.cpp:46:7:46:21 | ... = ... indirection [elem2] | -| B.cpp:46:7:46:21 | ... = ... indirection [elem1] | B.cpp:46:13:46:16 | this indirection [post update] [box1 indirection, elem1] | -| B.cpp:46:7:46:21 | ... = ... indirection [elem2] | B.cpp:46:13:46:16 | this indirection [post update] [box1 indirection, elem2] | +| B.cpp:46:7:46:21 | ... = ... indirection [elem1] | B.cpp:46:7:46:10 | this indirection [post update] [box1 indirection, elem1] | +| B.cpp:46:7:46:21 | ... = ... indirection [elem2] | B.cpp:46:7:46:10 | this indirection [post update] [box1 indirection, elem2] | | C.cpp:18:12:18:18 | call to C [s1] | C.cpp:19:5:19:5 | c indirection [s1] | | C.cpp:18:12:18:18 | call to C [s3] | C.cpp:19:5:19:5 | c indirection [s3] | | C.cpp:19:5:19:5 | c indirection [s1] | C.cpp:27:8:27:11 | this indirection [s1] | | C.cpp:19:5:19:5 | c indirection [s3] | C.cpp:27:8:27:11 | this indirection [s3] | -| C.cpp:22:9:22:22 | this indirection [post update] [s1] | C.cpp:18:12:18:18 | call to C [s1] | -| C.cpp:22:12:22:21 | new | C.cpp:22:9:22:22 | this indirection [post update] [s1] | +| C.cpp:22:3:22:3 | this indirection [post update] [s1] | C.cpp:18:12:18:18 | call to C [s1] | +| C.cpp:22:12:22:21 | new | C.cpp:22:3:22:3 | this indirection [post update] [s1] | | C.cpp:22:12:22:21 | new | C.cpp:22:12:22:21 | new | -| C.cpp:24:5:24:25 | ... = ... | C.cpp:24:11:24:12 | this indirection [post update] [s3] | -| C.cpp:24:11:24:12 | this indirection [post update] [s3] | C.cpp:18:12:18:18 | call to C [s3] | +| C.cpp:24:5:24:8 | this indirection [post update] [s3] | C.cpp:18:12:18:18 | call to C [s3] | +| C.cpp:24:5:24:25 | ... = ... | C.cpp:24:5:24:8 | this indirection [post update] [s3] | | C.cpp:24:16:24:25 | new | C.cpp:24:5:24:25 | ... = ... | | C.cpp:27:8:27:11 | this indirection [s1] | C.cpp:29:10:29:11 | this indirection [s1] | | C.cpp:27:8:27:11 | this indirection [s3] | C.cpp:31:10:31:11 | this indirection [s3] | @@ -163,20 +163,20 @@ edges | D.cpp:22:14:22:20 | call to getBox1 indirection [elem] | D.cpp:10:11:10:17 | this indirection [elem] | | D.cpp:22:14:22:20 | call to getBox1 indirection [elem] | D.cpp:22:10:22:33 | call to getElem | | D.cpp:28:15:28:24 | new | D.cpp:30:5:30:20 | ... = ... | -| D.cpp:30:5:30:20 | ... = ... | D.cpp:30:13:30:16 | box indirection [post update] [elem] | -| D.cpp:30:8:30:10 | b indirection [post update] [box indirection, elem] | D.cpp:31:14:31:14 | b indirection [box indirection, elem] | -| D.cpp:30:13:30:16 | box indirection [post update] [elem] | D.cpp:30:8:30:10 | b indirection [post update] [box indirection, elem] | +| D.cpp:30:5:30:5 | b indirection [post update] [box indirection, elem] | D.cpp:31:14:31:14 | b indirection [box indirection, elem] | +| D.cpp:30:5:30:20 | ... = ... | D.cpp:30:8:30:10 | box indirection [post update] [elem] | +| D.cpp:30:8:30:10 | box indirection [post update] [elem] | D.cpp:30:5:30:5 | b indirection [post update] [box indirection, elem] | | D.cpp:31:14:31:14 | b indirection [box indirection, elem] | D.cpp:21:30:21:31 | b2 indirection [box indirection, elem] | | D.cpp:35:15:35:24 | new | D.cpp:37:21:37:21 | e | -| D.cpp:37:8:37:10 | b indirection [post update] [box indirection, elem] | D.cpp:38:14:38:14 | b indirection [box indirection, elem] | -| D.cpp:37:8:37:10 | setElem output argument [elem] | D.cpp:37:8:37:10 | b indirection [post update] [box indirection, elem] | +| D.cpp:37:5:37:5 | b indirection [post update] [box indirection, elem] | D.cpp:38:14:38:14 | b indirection [box indirection, elem] | +| D.cpp:37:8:37:10 | setElem output argument [elem] | D.cpp:37:5:37:5 | b indirection [post update] [box indirection, elem] | | D.cpp:37:21:37:21 | e | D.cpp:11:24:11:24 | e | | D.cpp:37:21:37:21 | e | D.cpp:37:8:37:10 | setElem output argument [elem] | | D.cpp:38:14:38:14 | b indirection [box indirection, elem] | D.cpp:21:30:21:31 | b2 indirection [box indirection, elem] | | D.cpp:42:15:42:24 | new | D.cpp:44:5:44:26 | ... = ... | | D.cpp:44:5:44:5 | getBox1 output argument [box indirection, elem] | D.cpp:45:14:45:14 | b indirection [box indirection, elem] | -| D.cpp:44:5:44:26 | ... = ... | D.cpp:44:19:44:22 | call to getBox1 indirection [post update] [elem] | -| D.cpp:44:19:44:22 | call to getBox1 indirection [post update] [elem] | D.cpp:44:5:44:5 | getBox1 output argument [box indirection, elem] | +| D.cpp:44:5:44:26 | ... = ... | D.cpp:44:8:44:14 | call to getBox1 indirection [post update] [elem] | +| D.cpp:44:8:44:14 | call to getBox1 indirection [post update] [elem] | D.cpp:44:5:44:5 | getBox1 output argument [box indirection, elem] | | D.cpp:45:14:45:14 | b indirection [box indirection, elem] | D.cpp:21:30:21:31 | b2 indirection [box indirection, elem] | | D.cpp:49:15:49:24 | new | D.cpp:51:27:51:27 | e | | D.cpp:51:5:51:5 | getBox1 output argument [box indirection, elem] | D.cpp:52:14:52:14 | b indirection [box indirection, elem] | @@ -185,10 +185,10 @@ edges | D.cpp:51:27:51:27 | e | D.cpp:51:8:51:14 | setElem output argument [elem] | | D.cpp:52:14:52:14 | b indirection [box indirection, elem] | D.cpp:21:30:21:31 | b2 indirection [box indirection, elem] | | D.cpp:56:15:56:24 | new | D.cpp:58:5:58:27 | ... = ... | +| D.cpp:58:5:58:12 | boxfield indirection [post update] [box indirection, elem] | D.cpp:58:5:58:12 | this indirection [post update] [boxfield indirection, box indirection, elem] | | D.cpp:58:5:58:12 | this indirection [post update] [boxfield indirection, box indirection, elem] | D.cpp:59:5:59:7 | this indirection [boxfield indirection, box indirection, elem] | -| D.cpp:58:5:58:27 | ... = ... | D.cpp:58:20:58:23 | box indirection [post update] [elem] | -| D.cpp:58:15:58:17 | boxfield indirection [post update] [box indirection, elem] | D.cpp:58:5:58:12 | this indirection [post update] [boxfield indirection, box indirection, elem] | -| D.cpp:58:20:58:23 | box indirection [post update] [elem] | D.cpp:58:15:58:17 | boxfield indirection [post update] [box indirection, elem] | +| D.cpp:58:5:58:27 | ... = ... | D.cpp:58:15:58:17 | box indirection [post update] [elem] | +| D.cpp:58:15:58:17 | box indirection [post update] [elem] | D.cpp:58:5:58:12 | boxfield indirection [post update] [box indirection, elem] | | D.cpp:59:5:59:7 | this indirection [boxfield indirection, box indirection, elem] | D.cpp:63:8:63:10 | this indirection [boxfield indirection, box indirection, elem] | | D.cpp:63:8:63:10 | this indirection [boxfield indirection, box indirection, elem] | D.cpp:64:10:64:17 | this indirection [boxfield indirection, box indirection, elem] | | D.cpp:64:10:64:17 | boxfield indirection [box indirection, elem] | D.cpp:64:20:64:22 | box indirection [elem] | @@ -198,35 +198,35 @@ edges | E.cpp:21:10:21:10 | p indirection [data, buffer indirection] | E.cpp:21:13:21:16 | data indirection [buffer indirection] | | E.cpp:21:13:21:16 | data indirection [buffer indirection] | E.cpp:21:18:21:23 | buffer indirection | | E.cpp:28:21:28:23 | argument_source output argument | E.cpp:31:10:31:12 | raw indirection | -| E.cpp:29:21:29:29 | argument_source output argument | E.cpp:29:24:29:29 | b indirection [post update] [buffer indirection] | -| E.cpp:29:24:29:29 | b indirection [post update] [buffer indirection] | E.cpp:32:10:32:10 | b indirection [buffer indirection] | -| E.cpp:30:21:30:33 | argument_source output argument | E.cpp:30:28:30:33 | data indirection [post update] [buffer indirection] | -| E.cpp:30:23:30:26 | p indirection [post update] [data, buffer indirection] | E.cpp:33:18:33:19 | & ... indirection [data, buffer indirection] | -| E.cpp:30:28:30:33 | data indirection [post update] [buffer indirection] | E.cpp:30:23:30:26 | p indirection [post update] [data, buffer indirection] | +| E.cpp:29:21:29:21 | b indirection [post update] [buffer indirection] | E.cpp:32:10:32:10 | b indirection [buffer indirection] | +| E.cpp:29:21:29:29 | argument_source output argument | E.cpp:29:21:29:21 | b indirection [post update] [buffer indirection] | +| E.cpp:30:21:30:21 | p indirection [post update] [data, buffer indirection] | E.cpp:33:18:33:19 | & ... indirection [data, buffer indirection] | +| E.cpp:30:21:30:33 | argument_source output argument | E.cpp:30:23:30:26 | data indirection [post update] [buffer indirection] | +| E.cpp:30:23:30:26 | data indirection [post update] [buffer indirection] | E.cpp:30:21:30:21 | p indirection [post update] [data, buffer indirection] | | E.cpp:32:10:32:10 | b indirection [buffer indirection] | E.cpp:32:13:32:18 | buffer indirection | | E.cpp:33:18:33:19 | & ... indirection [data, buffer indirection] | E.cpp:19:27:19:27 | p indirection [data, buffer indirection] | -| aliasing.cpp:9:3:9:22 | ... = ... | aliasing.cpp:9:6:9:7 | s indirection [post update] [m1] | -| aliasing.cpp:9:6:9:7 | s indirection [post update] [m1] | aliasing.cpp:25:17:25:19 | pointerSetter output argument [m1] | +| aliasing.cpp:9:3:9:3 | s indirection [post update] [m1] | aliasing.cpp:25:17:25:19 | pointerSetter output argument [m1] | +| aliasing.cpp:9:3:9:22 | ... = ... | aliasing.cpp:9:3:9:3 | s indirection [post update] [m1] | | aliasing.cpp:9:11:9:20 | call to user_input | aliasing.cpp:9:3:9:22 | ... = ... | -| aliasing.cpp:13:3:13:21 | ... = ... | aliasing.cpp:13:5:13:6 | s indirection [post update] [m1] | -| aliasing.cpp:13:5:13:6 | s indirection [post update] [m1] | aliasing.cpp:26:19:26:20 | referenceSetter output argument [m1] | +| aliasing.cpp:13:3:13:3 | s indirection [post update] [m1] | aliasing.cpp:26:19:26:20 | referenceSetter output argument [m1] | +| aliasing.cpp:13:3:13:21 | ... = ... | aliasing.cpp:13:3:13:3 | s indirection [post update] [m1] | | aliasing.cpp:13:10:13:19 | call to user_input | aliasing.cpp:13:3:13:21 | ... = ... | | aliasing.cpp:25:17:25:19 | pointerSetter output argument [m1] | aliasing.cpp:29:8:29:9 | s1 indirection [m1] | | aliasing.cpp:26:19:26:20 | referenceSetter output argument [m1] | aliasing.cpp:30:8:30:9 | s2 indirection [m1] | | aliasing.cpp:29:8:29:9 | s1 indirection [m1] | aliasing.cpp:29:11:29:12 | m1 | | aliasing.cpp:30:8:30:9 | s2 indirection [m1] | aliasing.cpp:30:11:30:12 | m1 | -| aliasing.cpp:60:3:60:22 | ... = ... | aliasing.cpp:60:6:60:7 | s2 indirection [post update] [m1] | -| aliasing.cpp:60:6:60:7 | s2 indirection [post update] [m1] | aliasing.cpp:62:8:62:12 | copy2 indirection [m1] | +| aliasing.cpp:60:3:60:4 | s2 indirection [post update] [m1] | aliasing.cpp:62:8:62:12 | copy2 indirection [m1] | +| aliasing.cpp:60:3:60:22 | ... = ... | aliasing.cpp:60:3:60:4 | s2 indirection [post update] [m1] | | aliasing.cpp:60:11:60:20 | call to user_input | aliasing.cpp:60:3:60:22 | ... = ... | | aliasing.cpp:62:8:62:12 | copy2 indirection [m1] | aliasing.cpp:62:14:62:15 | m1 | -| aliasing.cpp:92:3:92:23 | ... = ... | aliasing.cpp:92:7:92:8 | s indirection [post update] [m1] | -| aliasing.cpp:92:5:92:5 | w indirection [post update] [s, m1] | aliasing.cpp:93:8:93:8 | w indirection [s, m1] | -| aliasing.cpp:92:7:92:8 | s indirection [post update] [m1] | aliasing.cpp:92:5:92:5 | w indirection [post update] [s, m1] | +| aliasing.cpp:92:3:92:3 | w indirection [post update] [s, m1] | aliasing.cpp:93:8:93:8 | w indirection [s, m1] | +| aliasing.cpp:92:3:92:23 | ... = ... | aliasing.cpp:92:5:92:5 | s indirection [post update] [m1] | +| aliasing.cpp:92:5:92:5 | s indirection [post update] [m1] | aliasing.cpp:92:3:92:3 | w indirection [post update] [s, m1] | | aliasing.cpp:92:12:92:21 | call to user_input | aliasing.cpp:92:3:92:23 | ... = ... | | aliasing.cpp:93:8:93:8 | w indirection [s, m1] | aliasing.cpp:93:10:93:10 | s indirection [m1] | | aliasing.cpp:93:10:93:10 | s indirection [m1] | aliasing.cpp:93:12:93:13 | m1 | -| aliasing.cpp:98:3:98:21 | ... = ... | aliasing.cpp:98:5:98:6 | s indirection [post update] [m1] | -| aliasing.cpp:98:5:98:6 | s indirection [post update] [m1] | aliasing.cpp:101:14:101:19 | s_copy indirection [m1] | +| aliasing.cpp:98:3:98:3 | s indirection [post update] [m1] | aliasing.cpp:101:14:101:19 | s_copy indirection [m1] | +| aliasing.cpp:98:3:98:21 | ... = ... | aliasing.cpp:98:3:98:3 | s indirection [post update] [m1] | | aliasing.cpp:98:10:98:19 | call to user_input | aliasing.cpp:98:3:98:21 | ... = ... | | aliasing.cpp:101:13:101:22 | & ... indirection | aliasing.cpp:102:8:102:10 | * ... | | aliasing.cpp:101:14:101:19 | s_copy indirection [m1] | aliasing.cpp:101:13:101:22 | & ... indirection | @@ -245,30 +245,30 @@ edges | aliasing.cpp:126:15:126:20 | taint_a_ptr output argument | aliasing.cpp:127:8:127:16 | * ... | | aliasing.cpp:131:15:131:16 | taint_a_ptr output argument | aliasing.cpp:132:8:132:14 | * ... | | aliasing.cpp:136:15:136:17 | taint_a_ptr output argument | aliasing.cpp:137:8:137:11 | * ... | -| aliasing.cpp:141:17:141:20 | s indirection [post update] [data indirection] | aliasing.cpp:143:8:143:8 | s indirection [data indirection] | -| aliasing.cpp:141:17:141:20 | taint_a_ptr output argument | aliasing.cpp:141:17:141:20 | s indirection [post update] [data indirection] | +| aliasing.cpp:141:15:141:15 | s indirection [post update] [data indirection] | aliasing.cpp:143:8:143:8 | s indirection [data indirection] | +| aliasing.cpp:141:17:141:20 | taint_a_ptr output argument | aliasing.cpp:141:15:141:15 | s indirection [post update] [data indirection] | | aliasing.cpp:143:8:143:8 | s indirection [data indirection] | aliasing.cpp:143:8:143:16 | access to array | | aliasing.cpp:143:8:143:8 | s indirection [data indirection] | aliasing.cpp:143:10:143:13 | data indirection | | aliasing.cpp:143:10:143:13 | data indirection | aliasing.cpp:143:8:143:16 | access to array | -| aliasing.cpp:158:15:158:20 | taint_a_ptr output argument | aliasing.cpp:158:17:158:20 | s indirection [post update] [data] | -| aliasing.cpp:158:17:158:20 | s indirection [post update] [data] | aliasing.cpp:159:9:159:9 | s indirection [data] | +| aliasing.cpp:158:15:158:15 | s indirection [post update] [data] | aliasing.cpp:159:9:159:9 | s indirection [data] | +| aliasing.cpp:158:15:158:20 | taint_a_ptr output argument | aliasing.cpp:158:15:158:15 | s indirection [post update] [data] | | aliasing.cpp:159:9:159:9 | s indirection [data] | aliasing.cpp:159:8:159:14 | * ... | -| aliasing.cpp:164:15:164:20 | taint_a_ptr output argument | aliasing.cpp:164:17:164:20 | s indirection [post update] [data] | -| aliasing.cpp:164:17:164:20 | s indirection [post update] [data] | aliasing.cpp:165:8:165:8 | s indirection [data] | +| aliasing.cpp:164:15:164:15 | s indirection [post update] [data] | aliasing.cpp:165:8:165:8 | s indirection [data] | +| aliasing.cpp:164:15:164:20 | taint_a_ptr output argument | aliasing.cpp:164:15:164:15 | s indirection [post update] [data] | | aliasing.cpp:165:8:165:8 | s indirection [data] | aliasing.cpp:165:8:165:16 | access to array | -| aliasing.cpp:175:15:175:22 | taint_a_ptr output argument | aliasing.cpp:175:21:175:22 | s indirection [post update] [m1] | -| aliasing.cpp:175:19:175:19 | s2 indirection [post update] [s, m1] | aliasing.cpp:176:8:176:9 | s2 indirection [s, m1] | -| aliasing.cpp:175:21:175:22 | s indirection [post update] [m1] | aliasing.cpp:175:19:175:19 | s2 indirection [post update] [s, m1] | +| aliasing.cpp:175:15:175:22 | taint_a_ptr output argument | aliasing.cpp:175:19:175:19 | s indirection [post update] [m1] | +| aliasing.cpp:175:16:175:17 | s2 indirection [post update] [s, m1] | aliasing.cpp:176:8:176:9 | s2 indirection [s, m1] | +| aliasing.cpp:175:19:175:19 | s indirection [post update] [m1] | aliasing.cpp:175:16:175:17 | s2 indirection [post update] [s, m1] | | aliasing.cpp:176:8:176:9 | s2 indirection [s, m1] | aliasing.cpp:176:11:176:11 | s indirection [m1] | | aliasing.cpp:176:11:176:11 | s indirection [m1] | aliasing.cpp:176:13:176:14 | m1 | -| aliasing.cpp:187:15:187:22 | taint_a_ptr output argument | aliasing.cpp:187:21:187:22 | s indirection [post update] [m1] | -| aliasing.cpp:187:19:187:19 | s2 indirection [post update] [s, m1] | aliasing.cpp:189:8:189:11 | s2_2 indirection [s, m1] | -| aliasing.cpp:187:21:187:22 | s indirection [post update] [m1] | aliasing.cpp:187:19:187:19 | s2 indirection [post update] [s, m1] | +| aliasing.cpp:187:15:187:22 | taint_a_ptr output argument | aliasing.cpp:187:19:187:19 | s indirection [post update] [m1] | +| aliasing.cpp:187:16:187:17 | s2 indirection [post update] [s, m1] | aliasing.cpp:189:8:189:11 | s2_2 indirection [s, m1] | +| aliasing.cpp:187:19:187:19 | s indirection [post update] [m1] | aliasing.cpp:187:16:187:17 | s2 indirection [post update] [s, m1] | | aliasing.cpp:189:8:189:11 | s2_2 indirection [s, m1] | aliasing.cpp:189:13:189:13 | s indirection [m1] | | aliasing.cpp:189:13:189:13 | s indirection [m1] | aliasing.cpp:189:15:189:16 | m1 | -| aliasing.cpp:200:15:200:24 | taint_a_ptr output argument | aliasing.cpp:200:23:200:24 | s indirection [post update] [m1] | -| aliasing.cpp:200:21:200:21 | ps2 indirection [post update] [s, m1] | aliasing.cpp:201:8:201:10 | ps2 indirection [s, m1] | -| aliasing.cpp:200:23:200:24 | s indirection [post update] [m1] | aliasing.cpp:200:21:200:21 | ps2 indirection [post update] [s, m1] | +| aliasing.cpp:200:15:200:24 | taint_a_ptr output argument | aliasing.cpp:200:21:200:21 | s indirection [post update] [m1] | +| aliasing.cpp:200:16:200:18 | ps2 indirection [post update] [s, m1] | aliasing.cpp:201:8:201:10 | ps2 indirection [s, m1] | +| aliasing.cpp:200:21:200:21 | s indirection [post update] [m1] | aliasing.cpp:200:16:200:18 | ps2 indirection [post update] [s, m1] | | aliasing.cpp:201:8:201:10 | ps2 indirection [s, m1] | aliasing.cpp:201:13:201:13 | s indirection [m1] | | aliasing.cpp:201:13:201:13 | s indirection [m1] | aliasing.cpp:201:15:201:16 | m1 | | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:7:8:7:13 | access to array | @@ -277,11 +277,11 @@ edges | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:10:8:10:15 | * ... | | arrays.cpp:15:14:15:23 | call to user_input | arrays.cpp:16:8:16:13 | access to array | | arrays.cpp:15:14:15:23 | call to user_input | arrays.cpp:17:8:17:13 | access to array | -| arrays.cpp:36:3:36:37 | ... = ... | arrays.cpp:36:19:36:22 | access to array indirection [post update] [data] | -| arrays.cpp:36:5:36:10 | o indirection [post update] [nested, arr, data] | arrays.cpp:37:8:37:8 | o indirection [nested, arr, data] | -| arrays.cpp:36:5:36:10 | o indirection [post update] [nested, arr, data] | arrays.cpp:38:8:38:8 | o indirection [nested, arr, data] | -| arrays.cpp:36:12:36:14 | nested indirection [post update] [arr, data] | arrays.cpp:36:5:36:10 | o indirection [post update] [nested, arr, data] | -| arrays.cpp:36:19:36:22 | access to array indirection [post update] [data] | arrays.cpp:36:12:36:14 | nested indirection [post update] [arr, data] | +| arrays.cpp:36:3:36:3 | o indirection [post update] [nested, arr, data] | arrays.cpp:37:8:37:8 | o indirection [nested, arr, data] | +| arrays.cpp:36:3:36:3 | o indirection [post update] [nested, arr, data] | arrays.cpp:38:8:38:8 | o indirection [nested, arr, data] | +| arrays.cpp:36:3:36:17 | access to array indirection [post update] [data] | arrays.cpp:36:5:36:10 | nested indirection [post update] [arr, data] | +| arrays.cpp:36:3:36:37 | ... = ... | arrays.cpp:36:3:36:17 | access to array indirection [post update] [data] | +| arrays.cpp:36:5:36:10 | nested indirection [post update] [arr, data] | arrays.cpp:36:3:36:3 | o indirection [post update] [nested, arr, data] | | arrays.cpp:36:26:36:35 | call to user_input | arrays.cpp:36:3:36:37 | ... = ... | | arrays.cpp:37:8:37:8 | o indirection [nested, arr, data] | arrays.cpp:37:10:37:15 | nested indirection [arr, data] | | arrays.cpp:37:8:37:22 | access to array indirection [data] | arrays.cpp:37:24:37:27 | data | @@ -289,11 +289,11 @@ edges | arrays.cpp:38:8:38:8 | o indirection [nested, arr, data] | arrays.cpp:38:10:38:15 | nested indirection [arr, data] | | arrays.cpp:38:8:38:22 | access to array indirection [data] | arrays.cpp:38:24:38:27 | data | | arrays.cpp:38:10:38:15 | nested indirection [arr, data] | arrays.cpp:38:8:38:22 | access to array indirection [data] | -| arrays.cpp:42:3:42:40 | ... = ... | arrays.cpp:42:22:42:25 | access to array indirection [post update] [data] | -| arrays.cpp:42:5:42:12 | o indirection [post update] [indirect indirection, arr, data] | arrays.cpp:43:8:43:8 | o indirection [indirect indirection, arr, data] | -| arrays.cpp:42:5:42:12 | o indirection [post update] [indirect indirection, arr, data] | arrays.cpp:44:8:44:8 | o indirection [indirect indirection, arr, data] | -| arrays.cpp:42:15:42:17 | indirect indirection [post update] [arr, data] | arrays.cpp:42:5:42:12 | o indirection [post update] [indirect indirection, arr, data] | -| arrays.cpp:42:22:42:25 | access to array indirection [post update] [data] | arrays.cpp:42:15:42:17 | indirect indirection [post update] [arr, data] | +| arrays.cpp:42:3:42:3 | o indirection [post update] [indirect indirection, arr, data] | arrays.cpp:43:8:43:8 | o indirection [indirect indirection, arr, data] | +| arrays.cpp:42:3:42:3 | o indirection [post update] [indirect indirection, arr, data] | arrays.cpp:44:8:44:8 | o indirection [indirect indirection, arr, data] | +| arrays.cpp:42:3:42:20 | access to array indirection [post update] [data] | arrays.cpp:42:5:42:12 | indirect indirection [post update] [arr, data] | +| arrays.cpp:42:3:42:40 | ... = ... | arrays.cpp:42:3:42:20 | access to array indirection [post update] [data] | +| arrays.cpp:42:5:42:12 | indirect indirection [post update] [arr, data] | arrays.cpp:42:3:42:3 | o indirection [post update] [indirect indirection, arr, data] | | arrays.cpp:42:29:42:38 | call to user_input | arrays.cpp:42:3:42:40 | ... = ... | | arrays.cpp:43:8:43:8 | o indirection [indirect indirection, arr, data] | arrays.cpp:43:10:43:17 | indirect indirection [arr, data] | | arrays.cpp:43:8:43:25 | access to array indirection [data] | arrays.cpp:43:27:43:30 | data | @@ -301,11 +301,11 @@ edges | arrays.cpp:44:8:44:8 | o indirection [indirect indirection, arr, data] | arrays.cpp:44:10:44:17 | indirect indirection [arr, data] | | arrays.cpp:44:8:44:25 | access to array indirection [data] | arrays.cpp:44:27:44:30 | data | | arrays.cpp:44:10:44:17 | indirect indirection [arr, data] | arrays.cpp:44:8:44:25 | access to array indirection [data] | -| arrays.cpp:48:3:48:40 | ... = ... | arrays.cpp:48:22:48:25 | access to array indirection [post update] [data] | -| arrays.cpp:48:5:48:12 | o indirection [post update] [indirect indirection, ptr indirection, data] | arrays.cpp:49:8:49:8 | o indirection [indirect indirection, ptr indirection, data] | -| arrays.cpp:48:5:48:12 | o indirection [post update] [indirect indirection, ptr indirection, data] | arrays.cpp:50:8:50:8 | o indirection [indirect indirection, ptr indirection, data] | -| arrays.cpp:48:15:48:17 | indirect indirection [post update] [ptr indirection, data] | arrays.cpp:48:5:48:12 | o indirection [post update] [indirect indirection, ptr indirection, data] | -| arrays.cpp:48:22:48:25 | access to array indirection [post update] [data] | arrays.cpp:48:15:48:17 | indirect indirection [post update] [ptr indirection, data] | +| arrays.cpp:48:3:48:3 | o indirection [post update] [indirect indirection, ptr indirection, data] | arrays.cpp:49:8:49:8 | o indirection [indirect indirection, ptr indirection, data] | +| arrays.cpp:48:3:48:3 | o indirection [post update] [indirect indirection, ptr indirection, data] | arrays.cpp:50:8:50:8 | o indirection [indirect indirection, ptr indirection, data] | +| arrays.cpp:48:3:48:20 | access to array indirection [post update] [data] | arrays.cpp:48:5:48:12 | indirect indirection [post update] [ptr indirection, data] | +| arrays.cpp:48:3:48:40 | ... = ... | arrays.cpp:48:3:48:20 | access to array indirection [post update] [data] | +| arrays.cpp:48:5:48:12 | indirect indirection [post update] [ptr indirection, data] | arrays.cpp:48:3:48:3 | o indirection [post update] [indirect indirection, ptr indirection, data] | | arrays.cpp:48:29:48:38 | call to user_input | arrays.cpp:48:3:48:40 | ... = ... | | arrays.cpp:49:8:49:8 | o indirection [indirect indirection, ptr indirection, data] | arrays.cpp:49:10:49:17 | indirect indirection [ptr indirection, data] | | arrays.cpp:49:8:49:25 | access to array indirection [data] | arrays.cpp:49:27:49:30 | data | @@ -318,9 +318,9 @@ edges | arrays.cpp:50:10:50:17 | indirect indirection [ptr indirection, data] | arrays.cpp:50:20:50:22 | ptr indirection [data] | | arrays.cpp:50:20:50:22 | ptr indirection [data] | arrays.cpp:50:8:50:25 | access to array indirection [data] | | by_reference.cpp:11:48:11:52 | value | by_reference.cpp:12:5:12:16 | ... = ... | -| by_reference.cpp:12:5:12:16 | ... = ... | by_reference.cpp:12:8:12:8 | s indirection [post update] [a] | +| by_reference.cpp:12:5:12:16 | ... = ... | by_reference.cpp:12:5:12:5 | s indirection [post update] [a] | | by_reference.cpp:15:26:15:30 | value | by_reference.cpp:16:5:16:19 | ... = ... | -| by_reference.cpp:16:5:16:19 | ... = ... | by_reference.cpp:16:11:16:11 | this indirection [post update] [a] | +| by_reference.cpp:16:5:16:19 | ... = ... | by_reference.cpp:16:5:16:8 | this indirection [post update] [a] | | by_reference.cpp:19:28:19:32 | value | by_reference.cpp:20:23:20:27 | value | | by_reference.cpp:20:23:20:27 | value | by_reference.cpp:15:26:15:30 | value | | by_reference.cpp:20:23:20:27 | value | by_reference.cpp:20:5:20:8 | setDirectly output argument [a] | @@ -361,17 +361,17 @@ edges | by_reference.cpp:68:21:68:30 | call to user_input | by_reference.cpp:68:17:68:18 | nonMemberSetA output argument [a] | | by_reference.cpp:69:22:69:23 | & ... indirection [a] | by_reference.cpp:31:46:31:46 | s indirection [a] | | by_reference.cpp:69:22:69:23 | & ... indirection [a] | by_reference.cpp:69:8:69:20 | call to nonMemberGetA | -| by_reference.cpp:84:3:84:25 | ... = ... | by_reference.cpp:84:10:84:10 | inner indirection [post update] [a] | -| by_reference.cpp:84:10:84:10 | inner indirection [post update] [a] | by_reference.cpp:102:21:102:39 | taint_inner_a_ptr output argument [a] | -| by_reference.cpp:84:10:84:10 | inner indirection [post update] [a] | by_reference.cpp:103:27:103:35 | taint_inner_a_ptr output argument [a] | -| by_reference.cpp:84:10:84:10 | inner indirection [post update] [a] | by_reference.cpp:106:21:106:41 | taint_inner_a_ptr output argument [a] | -| by_reference.cpp:84:10:84:10 | inner indirection [post update] [a] | by_reference.cpp:107:29:107:37 | taint_inner_a_ptr output argument [a] | +| by_reference.cpp:84:3:84:7 | inner indirection [post update] [a] | by_reference.cpp:102:21:102:39 | taint_inner_a_ptr output argument [a] | +| by_reference.cpp:84:3:84:7 | inner indirection [post update] [a] | by_reference.cpp:103:27:103:35 | taint_inner_a_ptr output argument [a] | +| by_reference.cpp:84:3:84:7 | inner indirection [post update] [a] | by_reference.cpp:106:21:106:41 | taint_inner_a_ptr output argument [a] | +| by_reference.cpp:84:3:84:7 | inner indirection [post update] [a] | by_reference.cpp:107:29:107:37 | taint_inner_a_ptr output argument [a] | +| by_reference.cpp:84:3:84:25 | ... = ... | by_reference.cpp:84:3:84:7 | inner indirection [post update] [a] | | by_reference.cpp:84:14:84:23 | call to user_input | by_reference.cpp:84:3:84:25 | ... = ... | -| by_reference.cpp:88:3:88:24 | ... = ... | by_reference.cpp:88:9:88:9 | inner indirection [post update] [a] | -| by_reference.cpp:88:9:88:9 | inner indirection [post update] [a] | by_reference.cpp:122:21:122:38 | taint_inner_a_ref output argument [a] | -| by_reference.cpp:88:9:88:9 | inner indirection [post update] [a] | by_reference.cpp:123:21:123:36 | taint_inner_a_ref output argument [a] | -| by_reference.cpp:88:9:88:9 | inner indirection [post update] [a] | by_reference.cpp:126:21:126:40 | taint_inner_a_ref output argument [a] | -| by_reference.cpp:88:9:88:9 | inner indirection [post update] [a] | by_reference.cpp:127:21:127:38 | taint_inner_a_ref output argument [a] | +| by_reference.cpp:88:3:88:7 | inner indirection [post update] [a] | by_reference.cpp:122:21:122:38 | taint_inner_a_ref output argument [a] | +| by_reference.cpp:88:3:88:7 | inner indirection [post update] [a] | by_reference.cpp:123:21:123:36 | taint_inner_a_ref output argument [a] | +| by_reference.cpp:88:3:88:7 | inner indirection [post update] [a] | by_reference.cpp:126:21:126:40 | taint_inner_a_ref output argument [a] | +| by_reference.cpp:88:3:88:7 | inner indirection [post update] [a] | by_reference.cpp:127:21:127:38 | taint_inner_a_ref output argument [a] | +| by_reference.cpp:88:3:88:24 | ... = ... | by_reference.cpp:88:3:88:7 | inner indirection [post update] [a] | | by_reference.cpp:88:13:88:22 | call to user_input | by_reference.cpp:88:3:88:24 | ... = ... | | by_reference.cpp:91:25:91:26 | pa | by_reference.cpp:104:15:104:22 | taint_a_ptr output argument | | by_reference.cpp:91:25:91:26 | pa | by_reference.cpp:108:15:108:24 | taint_a_ptr output argument | @@ -379,18 +379,18 @@ edges | by_reference.cpp:95:25:95:26 | pa | by_reference.cpp:124:15:124:21 | taint_a_ref output argument | | by_reference.cpp:95:25:95:26 | pa | by_reference.cpp:128:15:128:23 | taint_a_ref output argument | | by_reference.cpp:96:8:96:17 | call to user_input | by_reference.cpp:95:25:95:26 | pa | -| by_reference.cpp:102:21:102:39 | taint_inner_a_ptr output argument [a] | by_reference.cpp:102:28:102:39 | outer indirection [post update] [inner_nested, a] | -| by_reference.cpp:102:28:102:39 | outer indirection [post update] [inner_nested, a] | by_reference.cpp:110:8:110:12 | outer indirection [inner_nested, a] | -| by_reference.cpp:103:27:103:35 | outer indirection [post update] [inner_ptr indirection, a] | by_reference.cpp:111:8:111:12 | outer indirection [inner_ptr indirection, a] | -| by_reference.cpp:103:27:103:35 | taint_inner_a_ptr output argument [a] | by_reference.cpp:103:27:103:35 | outer indirection [post update] [inner_ptr indirection, a] | -| by_reference.cpp:104:15:104:22 | taint_a_ptr output argument | by_reference.cpp:104:22:104:22 | outer indirection [post update] [a] | -| by_reference.cpp:104:22:104:22 | outer indirection [post update] [a] | by_reference.cpp:112:8:112:12 | outer indirection [a] | -| by_reference.cpp:106:21:106:41 | taint_inner_a_ptr output argument [a] | by_reference.cpp:106:30:106:41 | pouter indirection [post update] [inner_nested, a] | -| by_reference.cpp:106:30:106:41 | pouter indirection [post update] [inner_nested, a] | by_reference.cpp:114:8:114:13 | pouter indirection [inner_nested, a] | -| by_reference.cpp:107:29:107:37 | pouter indirection [post update] [inner_ptr indirection, a] | by_reference.cpp:115:8:115:13 | pouter indirection [inner_ptr indirection, a] | -| by_reference.cpp:107:29:107:37 | taint_inner_a_ptr output argument [a] | by_reference.cpp:107:29:107:37 | pouter indirection [post update] [inner_ptr indirection, a] | -| by_reference.cpp:108:15:108:24 | taint_a_ptr output argument | by_reference.cpp:108:24:108:24 | pouter indirection [post update] [a] | -| by_reference.cpp:108:24:108:24 | pouter indirection [post update] [a] | by_reference.cpp:116:8:116:13 | pouter indirection [a] | +| by_reference.cpp:102:21:102:39 | taint_inner_a_ptr output argument [a] | by_reference.cpp:102:22:102:26 | outer indirection [post update] [inner_nested, a] | +| by_reference.cpp:102:22:102:26 | outer indirection [post update] [inner_nested, a] | by_reference.cpp:110:8:110:12 | outer indirection [inner_nested, a] | +| by_reference.cpp:103:21:103:25 | outer indirection [post update] [inner_ptr indirection, a] | by_reference.cpp:111:8:111:12 | outer indirection [inner_ptr indirection, a] | +| by_reference.cpp:103:27:103:35 | taint_inner_a_ptr output argument [a] | by_reference.cpp:103:21:103:25 | outer indirection [post update] [inner_ptr indirection, a] | +| by_reference.cpp:104:15:104:22 | taint_a_ptr output argument | by_reference.cpp:104:16:104:20 | outer indirection [post update] [a] | +| by_reference.cpp:104:16:104:20 | outer indirection [post update] [a] | by_reference.cpp:112:8:112:12 | outer indirection [a] | +| by_reference.cpp:106:21:106:41 | taint_inner_a_ptr output argument [a] | by_reference.cpp:106:22:106:27 | pouter indirection [post update] [inner_nested, a] | +| by_reference.cpp:106:22:106:27 | pouter indirection [post update] [inner_nested, a] | by_reference.cpp:114:8:114:13 | pouter indirection [inner_nested, a] | +| by_reference.cpp:107:21:107:26 | pouter indirection [post update] [inner_ptr indirection, a] | by_reference.cpp:115:8:115:13 | pouter indirection [inner_ptr indirection, a] | +| by_reference.cpp:107:29:107:37 | taint_inner_a_ptr output argument [a] | by_reference.cpp:107:21:107:26 | pouter indirection [post update] [inner_ptr indirection, a] | +| by_reference.cpp:108:15:108:24 | taint_a_ptr output argument | by_reference.cpp:108:16:108:21 | pouter indirection [post update] [a] | +| by_reference.cpp:108:16:108:21 | pouter indirection [post update] [a] | by_reference.cpp:116:8:116:13 | pouter indirection [a] | | by_reference.cpp:110:8:110:12 | outer indirection [inner_nested, a] | by_reference.cpp:110:14:110:25 | inner_nested indirection [a] | | by_reference.cpp:110:14:110:25 | inner_nested indirection [a] | by_reference.cpp:110:27:110:27 | a | | by_reference.cpp:111:8:111:12 | outer indirection [inner_ptr indirection, a] | by_reference.cpp:111:14:111:22 | inner_ptr indirection [a] | @@ -401,18 +401,18 @@ edges | by_reference.cpp:115:8:115:13 | pouter indirection [inner_ptr indirection, a] | by_reference.cpp:115:16:115:24 | inner_ptr indirection [a] | | by_reference.cpp:115:16:115:24 | inner_ptr indirection [a] | by_reference.cpp:115:27:115:27 | a | | by_reference.cpp:116:8:116:13 | pouter indirection [a] | by_reference.cpp:116:16:116:16 | a | -| by_reference.cpp:122:21:122:38 | taint_inner_a_ref output argument [a] | by_reference.cpp:122:27:122:38 | outer indirection [post update] [inner_nested, a] | -| by_reference.cpp:122:27:122:38 | outer indirection [post update] [inner_nested, a] | by_reference.cpp:130:8:130:12 | outer indirection [inner_nested, a] | -| by_reference.cpp:123:21:123:36 | taint_inner_a_ref output argument [a] | by_reference.cpp:123:28:123:36 | outer indirection [post update] [inner_ptr indirection, a] | -| by_reference.cpp:123:28:123:36 | outer indirection [post update] [inner_ptr indirection, a] | by_reference.cpp:131:8:131:12 | outer indirection [inner_ptr indirection, a] | -| by_reference.cpp:124:15:124:21 | taint_a_ref output argument | by_reference.cpp:124:21:124:21 | outer indirection [post update] [a] | -| by_reference.cpp:124:21:124:21 | outer indirection [post update] [a] | by_reference.cpp:132:8:132:12 | outer indirection [a] | -| by_reference.cpp:126:21:126:40 | taint_inner_a_ref output argument [a] | by_reference.cpp:126:29:126:40 | pouter indirection [post update] [inner_nested, a] | -| by_reference.cpp:126:29:126:40 | pouter indirection [post update] [inner_nested, a] | by_reference.cpp:134:8:134:13 | pouter indirection [inner_nested, a] | -| by_reference.cpp:127:21:127:38 | taint_inner_a_ref output argument [a] | by_reference.cpp:127:30:127:38 | pouter indirection [post update] [inner_ptr indirection, a] | -| by_reference.cpp:127:30:127:38 | pouter indirection [post update] [inner_ptr indirection, a] | by_reference.cpp:135:8:135:13 | pouter indirection [inner_ptr indirection, a] | -| by_reference.cpp:128:15:128:23 | taint_a_ref output argument | by_reference.cpp:128:23:128:23 | pouter indirection [post update] [a] | -| by_reference.cpp:128:23:128:23 | pouter indirection [post update] [a] | by_reference.cpp:136:8:136:13 | pouter indirection [a] | +| by_reference.cpp:122:21:122:25 | outer indirection [post update] [inner_nested, a] | by_reference.cpp:130:8:130:12 | outer indirection [inner_nested, a] | +| by_reference.cpp:122:21:122:38 | taint_inner_a_ref output argument [a] | by_reference.cpp:122:21:122:25 | outer indirection [post update] [inner_nested, a] | +| by_reference.cpp:123:21:123:36 | taint_inner_a_ref output argument [a] | by_reference.cpp:123:22:123:26 | outer indirection [post update] [inner_ptr indirection, a] | +| by_reference.cpp:123:22:123:26 | outer indirection [post update] [inner_ptr indirection, a] | by_reference.cpp:131:8:131:12 | outer indirection [inner_ptr indirection, a] | +| by_reference.cpp:124:15:124:19 | outer indirection [post update] [a] | by_reference.cpp:132:8:132:12 | outer indirection [a] | +| by_reference.cpp:124:15:124:21 | taint_a_ref output argument | by_reference.cpp:124:15:124:19 | outer indirection [post update] [a] | +| by_reference.cpp:126:21:126:26 | pouter indirection [post update] [inner_nested, a] | by_reference.cpp:134:8:134:13 | pouter indirection [inner_nested, a] | +| by_reference.cpp:126:21:126:40 | taint_inner_a_ref output argument [a] | by_reference.cpp:126:21:126:26 | pouter indirection [post update] [inner_nested, a] | +| by_reference.cpp:127:21:127:38 | taint_inner_a_ref output argument [a] | by_reference.cpp:127:22:127:27 | pouter indirection [post update] [inner_ptr indirection, a] | +| by_reference.cpp:127:22:127:27 | pouter indirection [post update] [inner_ptr indirection, a] | by_reference.cpp:135:8:135:13 | pouter indirection [inner_ptr indirection, a] | +| by_reference.cpp:128:15:128:20 | pouter indirection [post update] [a] | by_reference.cpp:136:8:136:13 | pouter indirection [a] | +| by_reference.cpp:128:15:128:23 | taint_a_ref output argument | by_reference.cpp:128:15:128:20 | pouter indirection [post update] [a] | | by_reference.cpp:130:8:130:12 | outer indirection [inner_nested, a] | by_reference.cpp:130:14:130:25 | inner_nested indirection [a] | | by_reference.cpp:130:14:130:25 | inner_nested indirection [a] | by_reference.cpp:130:27:130:27 | a | | by_reference.cpp:131:8:131:12 | outer indirection [inner_ptr indirection, a] | by_reference.cpp:131:14:131:22 | inner_ptr indirection [a] | @@ -423,96 +423,96 @@ edges | by_reference.cpp:135:8:135:13 | pouter indirection [inner_ptr indirection, a] | by_reference.cpp:135:16:135:24 | inner_ptr indirection [a] | | by_reference.cpp:135:16:135:24 | inner_ptr indirection [a] | by_reference.cpp:135:27:135:27 | a | | by_reference.cpp:136:8:136:13 | pouter indirection [a] | by_reference.cpp:136:16:136:16 | a | -| clearning.cpp:32:3:32:25 | ... = ... | clearning.cpp:32:6:32:6 | s indirection [post update] [x indirection] | -| clearning.cpp:32:6:32:6 | s indirection [post update] [x indirection] | clearning.cpp:33:5:33:5 | s indirection [x indirection] | +| clearning.cpp:32:3:32:25 | ... = ... | clearning.cpp:32:4:32:4 | s indirection [post update] [x indirection] | +| clearning.cpp:32:4:32:4 | s indirection [post update] [x indirection] | clearning.cpp:33:5:33:5 | s indirection [x indirection] | | clearning.cpp:32:10:32:19 | call to user_input | clearning.cpp:32:3:32:25 | ... = ... | | clearning.cpp:33:5:33:5 | s indirection [x indirection] | clearning.cpp:34:9:34:9 | s indirection [x indirection] | | clearning.cpp:34:9:34:9 | s indirection [x indirection] | clearning.cpp:34:8:34:11 | * ... | -| clearning.cpp:53:3:53:25 | ... = ... | clearning.cpp:53:6:53:6 | s indirection [post update] [x indirection] | -| clearning.cpp:53:6:53:6 | s indirection [post update] [x indirection] | clearning.cpp:54:3:54:3 | s indirection [x indirection] | +| clearning.cpp:53:3:53:25 | ... = ... | clearning.cpp:53:4:53:4 | s indirection [post update] [x indirection] | +| clearning.cpp:53:4:53:4 | s indirection [post update] [x indirection] | clearning.cpp:54:3:54:3 | s indirection [x indirection] | | clearning.cpp:53:10:53:19 | call to user_input | clearning.cpp:53:3:53:25 | ... = ... | +| clearning.cpp:54:3:54:3 | s indirection [post update] [x indirection] | clearning.cpp:55:8:55:8 | s indirection [x indirection] | | clearning.cpp:54:3:54:3 | s indirection [x indirection] | clearning.cpp:54:3:54:7 | ... ++ indirection | | clearning.cpp:54:3:54:3 | s indirection [x indirection] | clearning.cpp:54:5:54:5 | x indirection | | clearning.cpp:54:3:54:3 | s indirection [x indirection] | clearning.cpp:55:8:55:8 | s indirection [x indirection] | +| clearning.cpp:54:3:54:7 | ... ++ indirection | clearning.cpp:54:3:54:3 | s indirection [post update] [x indirection] | | clearning.cpp:54:3:54:7 | ... ++ indirection | clearning.cpp:54:3:54:7 | ... ++ indirection | -| clearning.cpp:54:3:54:7 | ... ++ indirection | clearning.cpp:54:5:54:5 | s indirection [post update] [x indirection] | -| clearning.cpp:54:5:54:5 | s indirection [post update] [x indirection] | clearning.cpp:55:8:55:8 | s indirection [x indirection] | | clearning.cpp:54:5:54:5 | x indirection | clearning.cpp:54:3:54:7 | ... ++ indirection | | clearning.cpp:55:8:55:8 | s indirection [x indirection] | clearning.cpp:55:10:55:10 | x indirection | -| clearning.cpp:60:3:60:22 | ... = ... | clearning.cpp:60:7:60:7 | s indirection [post update] [x indirection] | -| clearning.cpp:60:7:60:7 | s indirection [post update] [x indirection] | clearning.cpp:61:3:61:3 | s indirection [x indirection] | +| clearning.cpp:60:3:60:22 | ... = ... | clearning.cpp:60:5:60:5 | s indirection [post update] [x indirection] | +| clearning.cpp:60:5:60:5 | s indirection [post update] [x indirection] | clearning.cpp:61:3:61:3 | s indirection [x indirection] | | clearning.cpp:60:11:60:20 | call to user_input | clearning.cpp:60:3:60:22 | ... = ... | +| clearning.cpp:61:3:61:3 | s indirection [post update] [x indirection] | clearning.cpp:62:8:62:8 | s indirection [x indirection] | | clearning.cpp:61:3:61:3 | s indirection [x indirection] | clearning.cpp:61:3:61:7 | ... ++ indirection | | clearning.cpp:61:3:61:3 | s indirection [x indirection] | clearning.cpp:61:5:61:5 | x indirection | | clearning.cpp:61:3:61:3 | s indirection [x indirection] | clearning.cpp:62:8:62:8 | s indirection [x indirection] | +| clearning.cpp:61:3:61:7 | ... ++ indirection | clearning.cpp:61:3:61:3 | s indirection [post update] [x indirection] | | clearning.cpp:61:3:61:7 | ... ++ indirection | clearning.cpp:61:3:61:7 | ... ++ indirection | -| clearning.cpp:61:3:61:7 | ... ++ indirection | clearning.cpp:61:5:61:5 | s indirection [post update] [x indirection] | -| clearning.cpp:61:5:61:5 | s indirection [post update] [x indirection] | clearning.cpp:62:8:62:8 | s indirection [x indirection] | | clearning.cpp:61:5:61:5 | x indirection | clearning.cpp:61:3:61:7 | ... ++ indirection | | clearning.cpp:62:8:62:8 | s indirection [x indirection] | clearning.cpp:62:10:62:10 | x indirection | -| clearning.cpp:74:20:74:22 | argument_source output argument | clearning.cpp:74:20:74:22 | s indirection [post update] [val indirection] | -| clearning.cpp:74:20:74:22 | s indirection [post update] [val indirection] | clearning.cpp:76:8:76:8 | s indirection [val indirection] | +| clearning.cpp:74:18:74:18 | s indirection [post update] [val indirection] | clearning.cpp:76:8:76:8 | s indirection [val indirection] | +| clearning.cpp:74:20:74:22 | argument_source output argument | clearning.cpp:74:18:74:18 | s indirection [post update] [val indirection] | | clearning.cpp:76:8:76:8 | s indirection [val indirection] | clearning.cpp:76:7:76:12 | * ... | -| clearning.cpp:81:20:81:22 | argument_source output argument | clearning.cpp:81:20:81:22 | s indirection [post update] [val indirection] | -| clearning.cpp:81:20:81:22 | s indirection [post update] [val indirection] | clearning.cpp:83:13:83:13 | s indirection [val indirection] | -| clearning.cpp:83:5:83:21 | ... = ... indirection | clearning.cpp:83:7:83:9 | s indirection [post update] [val indirection] | -| clearning.cpp:83:7:83:9 | s indirection [post update] [val indirection] | clearning.cpp:84:8:84:8 | s indirection [val indirection] | +| clearning.cpp:81:18:81:18 | s indirection [post update] [val indirection] | clearning.cpp:83:13:83:13 | s indirection [val indirection] | +| clearning.cpp:81:20:81:22 | argument_source output argument | clearning.cpp:81:18:81:18 | s indirection [post update] [val indirection] | +| clearning.cpp:83:5:83:5 | s indirection [post update] [val indirection] | clearning.cpp:84:8:84:8 | s indirection [val indirection] | +| clearning.cpp:83:5:83:21 | ... = ... indirection | clearning.cpp:83:5:83:5 | s indirection [post update] [val indirection] | | clearning.cpp:83:13:83:13 | s indirection [val indirection] | clearning.cpp:83:13:83:21 | ... + ... indirection | | clearning.cpp:83:13:83:13 | s indirection [val indirection] | clearning.cpp:83:15:83:17 | val indirection | | clearning.cpp:83:13:83:21 | ... + ... indirection | clearning.cpp:83:5:83:21 | ... = ... indirection | | clearning.cpp:83:15:83:17 | val indirection | clearning.cpp:83:5:83:21 | ... = ... indirection | | clearning.cpp:84:8:84:8 | s indirection [val indirection] | clearning.cpp:84:7:84:12 | * ... | -| clearning.cpp:89:20:89:22 | argument_source output argument | clearning.cpp:89:20:89:22 | s indirection [post update] [val indirection] | -| clearning.cpp:89:20:89:22 | s indirection [post update] [val indirection] | clearning.cpp:90:3:90:3 | s indirection [val indirection] | +| clearning.cpp:89:18:89:18 | s indirection [post update] [val indirection] | clearning.cpp:90:3:90:3 | s indirection [val indirection] | +| clearning.cpp:89:20:89:22 | argument_source output argument | clearning.cpp:89:18:89:18 | s indirection [post update] [val indirection] | +| clearning.cpp:90:3:90:3 | s indirection [post update] [val indirection] | clearning.cpp:91:8:91:8 | s indirection [val indirection] | | clearning.cpp:90:3:90:3 | s indirection [val indirection] | clearning.cpp:90:3:90:9 | ... ++ indirection | | clearning.cpp:90:3:90:3 | s indirection [val indirection] | clearning.cpp:90:5:90:7 | val indirection | | clearning.cpp:90:3:90:3 | s indirection [val indirection] | clearning.cpp:91:8:91:8 | s indirection [val indirection] | +| clearning.cpp:90:3:90:9 | ... ++ indirection | clearning.cpp:90:3:90:3 | s indirection [post update] [val indirection] | | clearning.cpp:90:3:90:9 | ... ++ indirection | clearning.cpp:90:3:90:9 | ... ++ indirection | -| clearning.cpp:90:3:90:9 | ... ++ indirection | clearning.cpp:90:5:90:7 | s indirection [post update] [val indirection] | -| clearning.cpp:90:5:90:7 | s indirection [post update] [val indirection] | clearning.cpp:91:8:91:8 | s indirection [val indirection] | | clearning.cpp:90:5:90:7 | val indirection | clearning.cpp:90:3:90:9 | ... ++ indirection | | clearning.cpp:91:8:91:8 | s indirection [val indirection] | clearning.cpp:91:7:91:12 | * ... | -| clearning.cpp:96:20:96:22 | argument_source output argument | clearning.cpp:96:20:96:22 | s indirection [post update] [val indirection] | -| clearning.cpp:96:20:96:22 | s indirection [post update] [val indirection] | clearning.cpp:97:10:97:10 | s indirection [val indirection] | -| clearning.cpp:97:2:97:18 | ... = ... indirection | clearning.cpp:97:4:97:6 | s indirection [post update] [val indirection] | -| clearning.cpp:97:4:97:6 | s indirection [post update] [val indirection] | clearning.cpp:98:8:98:8 | s indirection [val indirection] | +| clearning.cpp:96:18:96:18 | s indirection [post update] [val indirection] | clearning.cpp:97:10:97:10 | s indirection [val indirection] | +| clearning.cpp:96:20:96:22 | argument_source output argument | clearning.cpp:96:18:96:18 | s indirection [post update] [val indirection] | +| clearning.cpp:97:2:97:2 | s indirection [post update] [val indirection] | clearning.cpp:98:8:98:8 | s indirection [val indirection] | +| clearning.cpp:97:2:97:18 | ... = ... indirection | clearning.cpp:97:2:97:2 | s indirection [post update] [val indirection] | | clearning.cpp:97:10:97:10 | s indirection [val indirection] | clearning.cpp:97:10:97:18 | ... + ... indirection | | clearning.cpp:97:10:97:10 | s indirection [val indirection] | clearning.cpp:97:12:97:14 | val indirection | | clearning.cpp:97:10:97:18 | ... + ... indirection | clearning.cpp:97:2:97:18 | ... = ... indirection | | clearning.cpp:97:12:97:14 | val indirection | clearning.cpp:97:2:97:18 | ... = ... indirection | | clearning.cpp:98:8:98:8 | s indirection [val indirection] | clearning.cpp:98:7:98:12 | * ... | -| clearning.cpp:103:20:103:22 | argument_source output argument | clearning.cpp:103:20:103:22 | s indirection [post update] [val indirection] | -| clearning.cpp:103:20:103:22 | s indirection [post update] [val indirection] | clearning.cpp:104:2:104:2 | s indirection [val indirection] | +| clearning.cpp:103:18:103:18 | s indirection [post update] [val indirection] | clearning.cpp:104:2:104:2 | s indirection [val indirection] | +| clearning.cpp:103:20:103:22 | argument_source output argument | clearning.cpp:103:18:103:18 | s indirection [post update] [val indirection] | +| clearning.cpp:104:2:104:2 | s indirection [post update] [val indirection] | clearning.cpp:105:8:105:8 | s indirection [val indirection] | | clearning.cpp:104:2:104:2 | s indirection [val indirection] | clearning.cpp:104:2:104:8 | ... ++ indirection | | clearning.cpp:104:2:104:2 | s indirection [val indirection] | clearning.cpp:104:4:104:6 | val indirection | | clearning.cpp:104:2:104:2 | s indirection [val indirection] | clearning.cpp:105:8:105:8 | s indirection [val indirection] | +| clearning.cpp:104:2:104:8 | ... ++ indirection | clearning.cpp:104:2:104:2 | s indirection [post update] [val indirection] | | clearning.cpp:104:2:104:8 | ... ++ indirection | clearning.cpp:104:2:104:8 | ... ++ indirection | -| clearning.cpp:104:2:104:8 | ... ++ indirection | clearning.cpp:104:4:104:6 | s indirection [post update] [val indirection] | -| clearning.cpp:104:4:104:6 | s indirection [post update] [val indirection] | clearning.cpp:105:8:105:8 | s indirection [val indirection] | | clearning.cpp:104:4:104:6 | val indirection | clearning.cpp:104:2:104:8 | ... ++ indirection | | clearning.cpp:105:8:105:8 | s indirection [val indirection] | clearning.cpp:105:7:105:12 | * ... | -| clearning.cpp:110:20:110:22 | argument_source output argument | clearning.cpp:110:20:110:22 | s indirection [post update] [val indirection] | -| clearning.cpp:110:20:110:22 | s indirection [post update] [val indirection] | clearning.cpp:111:4:111:4 | s indirection [val indirection] | +| clearning.cpp:110:18:110:18 | s indirection [post update] [val indirection] | clearning.cpp:111:4:111:4 | s indirection [val indirection] | +| clearning.cpp:110:20:110:22 | argument_source output argument | clearning.cpp:110:18:110:18 | s indirection [post update] [val indirection] | | clearning.cpp:111:2:111:8 | ++ ... indirection | clearning.cpp:111:2:111:8 | ++ ... indirection | -| clearning.cpp:111:2:111:8 | ++ ... indirection | clearning.cpp:111:6:111:8 | s indirection [post update] [val indirection] | +| clearning.cpp:111:2:111:8 | ++ ... indirection | clearning.cpp:111:4:111:4 | s indirection [post update] [val indirection] | +| clearning.cpp:111:4:111:4 | s indirection [post update] [val indirection] | clearning.cpp:112:8:112:8 | s indirection [val indirection] | | clearning.cpp:111:4:111:4 | s indirection [val indirection] | clearning.cpp:111:2:111:8 | ++ ... indirection | | clearning.cpp:111:4:111:4 | s indirection [val indirection] | clearning.cpp:111:6:111:8 | val indirection | | clearning.cpp:111:4:111:4 | s indirection [val indirection] | clearning.cpp:112:8:112:8 | s indirection [val indirection] | -| clearning.cpp:111:6:111:8 | s indirection [post update] [val indirection] | clearning.cpp:112:8:112:8 | s indirection [val indirection] | | clearning.cpp:111:6:111:8 | val indirection | clearning.cpp:111:2:111:8 | ++ ... indirection | | clearning.cpp:112:8:112:8 | s indirection [val indirection] | clearning.cpp:112:7:112:12 | * ... | -| clearning.cpp:117:20:117:22 | argument_source output argument | clearning.cpp:117:20:117:22 | s indirection [post update] [val indirection] | -| clearning.cpp:117:20:117:22 | s indirection [post update] [val indirection] | clearning.cpp:118:2:118:2 | s indirection [val indirection] | +| clearning.cpp:117:18:117:18 | s indirection [post update] [val indirection] | clearning.cpp:118:2:118:2 | s indirection [val indirection] | +| clearning.cpp:117:20:117:22 | argument_source output argument | clearning.cpp:117:18:117:18 | s indirection [post update] [val indirection] | +| clearning.cpp:118:2:118:2 | s indirection [post update] [val indirection] | clearning.cpp:119:8:119:8 | s indirection [val indirection] | | clearning.cpp:118:2:118:2 | s indirection [val indirection] | clearning.cpp:118:2:118:11 | ... += ... indirection | | clearning.cpp:118:2:118:2 | s indirection [val indirection] | clearning.cpp:118:4:118:6 | val indirection | | clearning.cpp:118:2:118:2 | s indirection [val indirection] | clearning.cpp:119:8:119:8 | s indirection [val indirection] | +| clearning.cpp:118:2:118:11 | ... += ... indirection | clearning.cpp:118:2:118:2 | s indirection [post update] [val indirection] | | clearning.cpp:118:2:118:11 | ... += ... indirection | clearning.cpp:118:2:118:11 | ... += ... indirection | -| clearning.cpp:118:2:118:11 | ... += ... indirection | clearning.cpp:118:4:118:6 | s indirection [post update] [val indirection] | -| clearning.cpp:118:4:118:6 | s indirection [post update] [val indirection] | clearning.cpp:119:8:119:8 | s indirection [val indirection] | | clearning.cpp:118:4:118:6 | val indirection | clearning.cpp:118:2:118:11 | ... += ... indirection | | clearning.cpp:119:8:119:8 | s indirection [val indirection] | clearning.cpp:119:7:119:12 | * ... | -| clearning.cpp:151:3:151:22 | ... = ... | clearning.cpp:151:5:151:7 | s indirection [post update] [val] | -| clearning.cpp:151:5:151:7 | s indirection [post update] [val] | clearning.cpp:152:8:152:8 | s indirection [val] | +| clearning.cpp:151:3:151:3 | s indirection [post update] [val] | clearning.cpp:152:8:152:8 | s indirection [val] | +| clearning.cpp:151:3:151:22 | ... = ... | clearning.cpp:151:3:151:3 | s indirection [post update] [val] | | clearning.cpp:151:11:151:20 | call to user_input | clearning.cpp:151:3:151:22 | ... = ... | | clearning.cpp:152:8:152:8 | s indirection [val] | clearning.cpp:152:10:152:12 | val | | complex.cpp:9:7:9:7 | this indirection [a_] | complex.cpp:9:20:9:21 | this indirection [a_] | @@ -535,68 +535,52 @@ edges | complex.cpp:43:10:43:14 | inner indirection [f, b_] | complex.cpp:43:16:43:16 | f indirection [b_] | | complex.cpp:43:16:43:16 | f indirection [b_] | complex.cpp:10:7:10:7 | this indirection [b_] | | complex.cpp:43:16:43:16 | f indirection [b_] | complex.cpp:43:18:43:18 | call to b | -| complex.cpp:53:6:53:10 | b1 indirection [post update] [inner, f, a_] | complex.cpp:59:7:59:8 | b1 indirection [inner, f, a_] | -| complex.cpp:53:12:53:12 | inner indirection [post update] [f, a_] | complex.cpp:53:6:53:10 | b1 indirection [post update] [inner, f, a_] | -| complex.cpp:53:12:53:12 | inner indirection [post update] [f, a_] | complex.cpp:53:6:53:10 | b1 indirection [post update] [inner, f, a_] | -| complex.cpp:53:12:53:12 | inner indirection [post update] [f, a_] | complex.cpp:53:6:53:10 | b1 indirection [post update] [inner, f, a_] | -| complex.cpp:53:12:53:12 | setA output argument [a_] | complex.cpp:53:12:53:12 | inner indirection [post update] [f, a_] | -| complex.cpp:53:12:53:12 | setA output argument [a_] | complex.cpp:53:12:53:12 | inner indirection [post update] [f, a_] | -| complex.cpp:53:12:53:12 | setA output argument [a_] | complex.cpp:53:12:53:12 | inner indirection [post update] [f, a_] | +| complex.cpp:53:3:53:4 | b1 indirection [post update] [inner, f, a_] | complex.cpp:59:7:59:8 | b1 indirection [inner, f, a_] | +| complex.cpp:53:6:53:10 | inner indirection [post update] [f, a_] | complex.cpp:53:3:53:4 | b1 indirection [post update] [inner, f, a_] | +| complex.cpp:53:12:53:12 | setA output argument [a_] | complex.cpp:53:6:53:10 | inner indirection [post update] [f, a_] | | complex.cpp:53:19:53:28 | call to user_input | complex.cpp:11:17:11:17 | a | | complex.cpp:53:19:53:28 | call to user_input | complex.cpp:53:12:53:12 | setA output argument [a_] | -| complex.cpp:54:6:54:10 | b2 indirection [post update] [inner, f, b_] | complex.cpp:62:7:62:8 | b2 indirection [inner, f, b_] | -| complex.cpp:54:12:54:12 | inner indirection [post update] [f, b_] | complex.cpp:54:6:54:10 | b2 indirection [post update] [inner, f, b_] | -| complex.cpp:54:12:54:12 | inner indirection [post update] [f, b_] | complex.cpp:54:6:54:10 | b2 indirection [post update] [inner, f, b_] | -| complex.cpp:54:12:54:12 | inner indirection [post update] [f, b_] | complex.cpp:54:6:54:10 | b2 indirection [post update] [inner, f, b_] | -| complex.cpp:54:12:54:12 | setB output argument [b_] | complex.cpp:54:12:54:12 | inner indirection [post update] [f, b_] | -| complex.cpp:54:12:54:12 | setB output argument [b_] | complex.cpp:54:12:54:12 | inner indirection [post update] [f, b_] | -| complex.cpp:54:12:54:12 | setB output argument [b_] | complex.cpp:54:12:54:12 | inner indirection [post update] [f, b_] | +| complex.cpp:54:3:54:4 | b2 indirection [post update] [inner, f, b_] | complex.cpp:62:7:62:8 | b2 indirection [inner, f, b_] | +| complex.cpp:54:6:54:10 | inner indirection [post update] [f, b_] | complex.cpp:54:3:54:4 | b2 indirection [post update] [inner, f, b_] | +| complex.cpp:54:12:54:12 | setB output argument [b_] | complex.cpp:54:6:54:10 | inner indirection [post update] [f, b_] | | complex.cpp:54:19:54:28 | call to user_input | complex.cpp:12:17:12:17 | b | | complex.cpp:54:19:54:28 | call to user_input | complex.cpp:54:12:54:12 | setB output argument [b_] | -| complex.cpp:55:6:55:10 | b3 indirection [post update] [inner, f, a_] | complex.cpp:65:7:65:8 | b3 indirection [inner, f, a_] | -| complex.cpp:55:12:55:12 | inner indirection [post update] [f, a_] | complex.cpp:55:6:55:10 | b3 indirection [post update] [inner, f, a_] | -| complex.cpp:55:12:55:12 | inner indirection [post update] [f, a_] | complex.cpp:55:6:55:10 | b3 indirection [post update] [inner, f, a_] | -| complex.cpp:55:12:55:12 | inner indirection [post update] [f, a_] | complex.cpp:55:6:55:10 | b3 indirection [post update] [inner, f, a_] | -| complex.cpp:55:12:55:12 | setA output argument [a_] | complex.cpp:55:12:55:12 | inner indirection [post update] [f, a_] | -| complex.cpp:55:12:55:12 | setA output argument [a_] | complex.cpp:55:12:55:12 | inner indirection [post update] [f, a_] | -| complex.cpp:55:12:55:12 | setA output argument [a_] | complex.cpp:55:12:55:12 | inner indirection [post update] [f, a_] | +| complex.cpp:55:3:55:4 | b3 indirection [post update] [inner, f, a_] | complex.cpp:65:7:65:8 | b3 indirection [inner, f, a_] | +| complex.cpp:55:6:55:10 | inner indirection [post update] [f, a_] | complex.cpp:55:3:55:4 | b3 indirection [post update] [inner, f, a_] | +| complex.cpp:55:12:55:12 | setA output argument [a_] | complex.cpp:55:6:55:10 | inner indirection [post update] [f, a_] | | complex.cpp:55:19:55:28 | call to user_input | complex.cpp:11:17:11:17 | a | | complex.cpp:55:19:55:28 | call to user_input | complex.cpp:55:12:55:12 | setA output argument [a_] | -| complex.cpp:56:6:56:10 | b3 indirection [post update] [inner, f, b_] | complex.cpp:65:7:65:8 | b3 indirection [inner, f, b_] | -| complex.cpp:56:12:56:12 | inner indirection [post update] [f, b_] | complex.cpp:56:6:56:10 | b3 indirection [post update] [inner, f, b_] | -| complex.cpp:56:12:56:12 | inner indirection [post update] [f, b_] | complex.cpp:56:6:56:10 | b3 indirection [post update] [inner, f, b_] | -| complex.cpp:56:12:56:12 | inner indirection [post update] [f, b_] | complex.cpp:56:6:56:10 | b3 indirection [post update] [inner, f, b_] | -| complex.cpp:56:12:56:12 | setB output argument [b_] | complex.cpp:56:12:56:12 | inner indirection [post update] [f, b_] | -| complex.cpp:56:12:56:12 | setB output argument [b_] | complex.cpp:56:12:56:12 | inner indirection [post update] [f, b_] | -| complex.cpp:56:12:56:12 | setB output argument [b_] | complex.cpp:56:12:56:12 | inner indirection [post update] [f, b_] | +| complex.cpp:56:3:56:4 | b3 indirection [post update] [inner, f, b_] | complex.cpp:65:7:65:8 | b3 indirection [inner, f, b_] | +| complex.cpp:56:6:56:10 | inner indirection [post update] [f, b_] | complex.cpp:56:3:56:4 | b3 indirection [post update] [inner, f, b_] | +| complex.cpp:56:12:56:12 | setB output argument [b_] | complex.cpp:56:6:56:10 | inner indirection [post update] [f, b_] | | complex.cpp:56:19:56:28 | call to user_input | complex.cpp:12:17:12:17 | b | | complex.cpp:56:19:56:28 | call to user_input | complex.cpp:56:12:56:12 | setB output argument [b_] | | complex.cpp:59:7:59:8 | b1 indirection [inner, f, a_] | complex.cpp:40:17:40:17 | b indirection [inner, f, a_] | | complex.cpp:62:7:62:8 | b2 indirection [inner, f, b_] | complex.cpp:40:17:40:17 | b indirection [inner, f, b_] | | complex.cpp:65:7:65:8 | b3 indirection [inner, f, a_] | complex.cpp:40:17:40:17 | b indirection [inner, f, a_] | | complex.cpp:65:7:65:8 | b3 indirection [inner, f, b_] | complex.cpp:40:17:40:17 | b indirection [inner, f, b_] | -| conflated.cpp:10:3:10:22 | ... = ... | conflated.cpp:10:7:10:7 | ra indirection [post update] [p indirection] | -| conflated.cpp:10:7:10:7 | ra indirection [post update] [p indirection] | conflated.cpp:11:9:11:10 | ra indirection [p indirection] | +| conflated.cpp:10:3:10:22 | ... = ... | conflated.cpp:10:4:10:5 | ra indirection [post update] [p indirection] | +| conflated.cpp:10:4:10:5 | ra indirection [post update] [p indirection] | conflated.cpp:11:9:11:10 | ra indirection [p indirection] | | conflated.cpp:10:11:10:20 | call to user_input | conflated.cpp:10:3:10:22 | ... = ... | | conflated.cpp:11:9:11:10 | ra indirection [p indirection] | conflated.cpp:11:8:11:12 | * ... | | conflated.cpp:19:19:19:21 | argument_source output argument | conflated.cpp:20:8:20:10 | raw indirection | -| conflated.cpp:29:3:29:22 | ... = ... | conflated.cpp:29:7:29:7 | pa indirection [post update] [x] | -| conflated.cpp:29:7:29:7 | pa indirection [post update] [x] | conflated.cpp:30:8:30:9 | pa indirection [x] | +| conflated.cpp:29:3:29:4 | pa indirection [post update] [x] | conflated.cpp:30:8:30:9 | pa indirection [x] | +| conflated.cpp:29:3:29:22 | ... = ... | conflated.cpp:29:3:29:4 | pa indirection [post update] [x] | | conflated.cpp:29:11:29:20 | call to user_input | conflated.cpp:29:3:29:22 | ... = ... | | conflated.cpp:30:8:30:9 | pa indirection [x] | conflated.cpp:30:12:30:12 | x | -| conflated.cpp:36:3:36:22 | ... = ... | conflated.cpp:36:7:36:7 | pa indirection [post update] [x] | -| conflated.cpp:36:7:36:7 | pa indirection [post update] [x] | conflated.cpp:37:8:37:9 | pa indirection [x] | +| conflated.cpp:36:3:36:4 | pa indirection [post update] [x] | conflated.cpp:37:8:37:9 | pa indirection [x] | +| conflated.cpp:36:3:36:22 | ... = ... | conflated.cpp:36:3:36:4 | pa indirection [post update] [x] | | conflated.cpp:36:11:36:20 | call to user_input | conflated.cpp:36:3:36:22 | ... = ... | | conflated.cpp:37:8:37:9 | pa indirection [x] | conflated.cpp:37:12:37:12 | x | -| conflated.cpp:54:3:54:28 | ... = ... | conflated.cpp:54:13:54:13 | next indirection [post update] [y] | -| conflated.cpp:54:7:54:10 | ll indirection [post update] [next indirection, y] | conflated.cpp:55:8:55:9 | ll indirection [next indirection, y] | -| conflated.cpp:54:13:54:13 | next indirection [post update] [y] | conflated.cpp:54:7:54:10 | ll indirection [post update] [next indirection, y] | +| conflated.cpp:54:3:54:4 | ll indirection [post update] [next indirection, y] | conflated.cpp:55:8:55:9 | ll indirection [next indirection, y] | +| conflated.cpp:54:3:54:28 | ... = ... | conflated.cpp:54:7:54:10 | next indirection [post update] [y] | +| conflated.cpp:54:7:54:10 | next indirection [post update] [y] | conflated.cpp:54:3:54:4 | ll indirection [post update] [next indirection, y] | | conflated.cpp:54:17:54:26 | call to user_input | conflated.cpp:54:3:54:28 | ... = ... | | conflated.cpp:55:8:55:9 | ll indirection [next indirection, y] | conflated.cpp:55:12:55:15 | next indirection [y] | | conflated.cpp:55:12:55:15 | next indirection [y] | conflated.cpp:55:18:55:18 | y | -| conflated.cpp:60:3:60:28 | ... = ... | conflated.cpp:60:13:60:13 | next indirection [post update] [y] | -| conflated.cpp:60:7:60:10 | ll indirection [post update] [next indirection, y] | conflated.cpp:61:8:61:9 | ll indirection [next indirection, y] | -| conflated.cpp:60:13:60:13 | next indirection [post update] [y] | conflated.cpp:60:7:60:10 | ll indirection [post update] [next indirection, y] | +| conflated.cpp:60:3:60:4 | ll indirection [post update] [next indirection, y] | conflated.cpp:61:8:61:9 | ll indirection [next indirection, y] | +| conflated.cpp:60:3:60:28 | ... = ... | conflated.cpp:60:7:60:10 | next indirection [post update] [y] | +| conflated.cpp:60:7:60:10 | next indirection [post update] [y] | conflated.cpp:60:3:60:4 | ll indirection [post update] [next indirection, y] | | conflated.cpp:60:17:60:26 | call to user_input | conflated.cpp:60:3:60:28 | ... = ... | | conflated.cpp:61:8:61:9 | ll indirection [next indirection, y] | conflated.cpp:61:12:61:15 | next indirection [y] | | conflated.cpp:61:12:61:15 | next indirection [y] | conflated.cpp:61:18:61:18 | y | @@ -608,8 +592,8 @@ edges | constructors.cpp:19:22:19:23 | this indirection [b_] | constructors.cpp:19:22:19:23 | b_ | | constructors.cpp:23:13:23:13 | a | constructors.cpp:23:28:23:28 | a | | constructors.cpp:23:20:23:20 | b | constructors.cpp:23:35:23:35 | b | -| constructors.cpp:23:28:23:28 | a | constructors.cpp:23:25:23:29 | this indirection [post update] [a_] | -| constructors.cpp:23:35:23:35 | b | constructors.cpp:23:32:23:36 | this indirection [post update] [b_] | +| constructors.cpp:23:28:23:28 | a | constructors.cpp:23:5:23:7 | this indirection [post update] [a_] | +| constructors.cpp:23:35:23:35 | b | constructors.cpp:23:5:23:7 | this indirection [post update] [b_] | | constructors.cpp:26:15:26:15 | f indirection [a_] | constructors.cpp:28:10:28:10 | f indirection [a_] | | constructors.cpp:26:15:26:15 | f indirection [b_] | constructors.cpp:29:10:29:10 | f indirection [b_] | | constructors.cpp:28:10:28:10 | f indirection [a_] | constructors.cpp:18:9:18:9 | this indirection [a_] | @@ -633,14 +617,14 @@ edges | constructors.cpp:46:9:46:9 | h indirection [a_] | constructors.cpp:26:15:26:15 | f indirection [a_] | | constructors.cpp:46:9:46:9 | h indirection [b_] | constructors.cpp:26:15:26:15 | f indirection [b_] | | qualifiers.cpp:9:21:9:25 | value | qualifiers.cpp:9:30:9:44 | ... = ... | -| qualifiers.cpp:9:30:9:44 | ... = ... | qualifiers.cpp:9:36:9:36 | this indirection [post update] [a] | +| qualifiers.cpp:9:30:9:44 | ... = ... | qualifiers.cpp:9:30:9:33 | this indirection [post update] [a] | | qualifiers.cpp:12:40:12:44 | value | qualifiers.cpp:12:49:12:64 | ... = ... | -| qualifiers.cpp:12:49:12:64 | ... = ... | qualifiers.cpp:12:56:12:56 | inner indirection [post update] [a] | +| qualifiers.cpp:12:49:12:64 | ... = ... | qualifiers.cpp:12:49:12:53 | inner indirection [post update] [a] | | qualifiers.cpp:13:42:13:46 | value | qualifiers.cpp:13:51:13:65 | ... = ... | -| qualifiers.cpp:13:51:13:65 | ... = ... | qualifiers.cpp:13:57:13:57 | inner indirection [post update] [a] | +| qualifiers.cpp:13:51:13:65 | ... = ... | qualifiers.cpp:13:51:13:55 | inner indirection [post update] [a] | | qualifiers.cpp:22:5:22:9 | getInner output argument [inner indirection, a] | qualifiers.cpp:23:10:23:14 | outer indirection [inner indirection, a] | -| qualifiers.cpp:22:5:22:38 | ... = ... | qualifiers.cpp:22:23:22:23 | call to getInner indirection [post update] [a] | -| qualifiers.cpp:22:23:22:23 | call to getInner indirection [post update] [a] | qualifiers.cpp:22:5:22:9 | getInner output argument [inner indirection, a] | +| qualifiers.cpp:22:5:22:38 | ... = ... | qualifiers.cpp:22:11:22:18 | call to getInner indirection [post update] [a] | +| qualifiers.cpp:22:11:22:18 | call to getInner indirection [post update] [a] | qualifiers.cpp:22:5:22:9 | getInner output argument [inner indirection, a] | | qualifiers.cpp:22:27:22:36 | call to user_input | qualifiers.cpp:22:5:22:38 | ... = ... | | qualifiers.cpp:23:10:23:14 | outer indirection [inner indirection, a] | qualifiers.cpp:23:16:23:20 | inner indirection [a] | | qualifiers.cpp:23:16:23:20 | inner indirection [a] | qualifiers.cpp:23:23:23:23 | a | @@ -662,23 +646,23 @@ edges | qualifiers.cpp:37:38:37:47 | call to user_input | qualifiers.cpp:37:19:37:35 | referenceSetA output argument [a] | | qualifiers.cpp:38:10:38:14 | outer indirection [inner indirection, a] | qualifiers.cpp:38:16:38:20 | inner indirection [a] | | qualifiers.cpp:38:16:38:20 | inner indirection [a] | qualifiers.cpp:38:23:38:23 | a | -| qualifiers.cpp:42:5:42:40 | ... = ... | qualifiers.cpp:42:25:42:25 | * ... indirection [post update] [a] | +| qualifiers.cpp:42:5:42:40 | ... = ... | qualifiers.cpp:42:6:42:22 | * ... indirection [post update] [a] | +| qualifiers.cpp:42:6:42:22 | * ... indirection [post update] [a] | qualifiers.cpp:42:7:42:11 | getInner output argument [inner indirection, a] | | qualifiers.cpp:42:7:42:11 | getInner output argument [inner indirection, a] | qualifiers.cpp:43:10:43:14 | outer indirection [inner indirection, a] | -| qualifiers.cpp:42:25:42:25 | * ... indirection [post update] [a] | qualifiers.cpp:42:7:42:11 | getInner output argument [inner indirection, a] | | qualifiers.cpp:42:29:42:38 | call to user_input | qualifiers.cpp:42:5:42:40 | ... = ... | | qualifiers.cpp:43:10:43:14 | outer indirection [inner indirection, a] | qualifiers.cpp:43:16:43:20 | inner indirection [a] | | qualifiers.cpp:43:16:43:20 | inner indirection [a] | qualifiers.cpp:43:23:43:23 | a | -| qualifiers.cpp:47:5:47:42 | ... = ... | qualifiers.cpp:47:27:47:27 | call to getInner indirection [post update] [a] | +| qualifiers.cpp:47:5:47:42 | ... = ... | qualifiers.cpp:47:15:47:22 | call to getInner indirection [post update] [a] | | qualifiers.cpp:47:6:47:11 | getInner output argument [inner indirection, a] | qualifiers.cpp:48:10:48:14 | outer indirection [inner indirection, a] | -| qualifiers.cpp:47:27:47:27 | call to getInner indirection [post update] [a] | qualifiers.cpp:47:6:47:11 | getInner output argument [inner indirection, a] | +| qualifiers.cpp:47:15:47:22 | call to getInner indirection [post update] [a] | qualifiers.cpp:47:6:47:11 | getInner output argument [inner indirection, a] | | qualifiers.cpp:47:31:47:40 | call to user_input | qualifiers.cpp:47:5:47:42 | ... = ... | | qualifiers.cpp:48:10:48:14 | outer indirection [inner indirection, a] | qualifiers.cpp:48:16:48:20 | inner indirection [a] | | qualifiers.cpp:48:16:48:20 | inner indirection [a] | qualifiers.cpp:48:23:48:23 | a | -| realistic.cpp:53:9:53:66 | ... = ... | realistic.cpp:53:35:53:43 | userInput indirection [post update] [bufferLen] | -| realistic.cpp:53:13:53:15 | foo indirection [post update] [bar, baz indirection, userInput, bufferLen] | realistic.cpp:61:21:61:23 | foo indirection [bar, baz indirection, userInput, bufferLen] | -| realistic.cpp:53:20:53:22 | access to array indirection [post update] [baz indirection, userInput, bufferLen] | realistic.cpp:53:13:53:15 | foo indirection [post update] [bar, baz indirection, userInput, bufferLen] | -| realistic.cpp:53:25:53:33 | baz indirection [post update] [userInput, bufferLen] | realistic.cpp:53:20:53:22 | access to array indirection [post update] [baz indirection, userInput, bufferLen] | -| realistic.cpp:53:35:53:43 | userInput indirection [post update] [bufferLen] | realistic.cpp:53:25:53:33 | baz indirection [post update] [userInput, bufferLen] | +| realistic.cpp:53:9:53:11 | foo indirection [post update] [bar, baz indirection, userInput, bufferLen] | realistic.cpp:61:21:61:23 | foo indirection [bar, baz indirection, userInput, bufferLen] | +| realistic.cpp:53:9:53:18 | access to array indirection [post update] [baz indirection, userInput, bufferLen] | realistic.cpp:53:9:53:11 | foo indirection [post update] [bar, baz indirection, userInput, bufferLen] | +| realistic.cpp:53:9:53:66 | ... = ... | realistic.cpp:53:25:53:33 | userInput indirection [post update] [bufferLen] | +| realistic.cpp:53:20:53:22 | baz indirection [post update] [userInput, bufferLen] | realistic.cpp:53:9:53:18 | access to array indirection [post update] [baz indirection, userInput, bufferLen] | +| realistic.cpp:53:25:53:33 | userInput indirection [post update] [bufferLen] | realistic.cpp:53:20:53:22 | baz indirection [post update] [userInput, bufferLen] | | realistic.cpp:53:47:53:66 | call to user_input | realistic.cpp:53:9:53:66 | ... = ... | | realistic.cpp:61:21:61:23 | foo indirection [bar, baz indirection, userInput, bufferLen] | realistic.cpp:61:21:61:30 | access to array indirection [baz indirection, userInput, bufferLen] | | realistic.cpp:61:21:61:30 | access to array indirection [baz indirection, userInput, bufferLen] | realistic.cpp:61:32:61:34 | baz indirection [userInput, bufferLen] | @@ -716,22 +700,22 @@ edges | simple.cpp:48:9:48:9 | g indirection [b_] | simple.cpp:26:15:26:15 | f indirection [b_] | | simple.cpp:51:9:51:9 | h indirection [a_] | simple.cpp:26:15:26:15 | f indirection [a_] | | simple.cpp:51:9:51:9 | h indirection [b_] | simple.cpp:26:15:26:15 | f indirection [b_] | -| simple.cpp:65:5:65:22 | ... = ... | simple.cpp:65:7:65:7 | a indirection [post update] [i] | -| simple.cpp:65:7:65:7 | a indirection [post update] [i] | simple.cpp:67:10:67:11 | a2 indirection [i] | +| simple.cpp:65:5:65:5 | a indirection [post update] [i] | simple.cpp:67:10:67:11 | a2 indirection [i] | +| simple.cpp:65:5:65:22 | ... = ... | simple.cpp:65:5:65:5 | a indirection [post update] [i] | | simple.cpp:65:11:65:20 | call to user_input | simple.cpp:65:5:65:22 | ... = ... | | simple.cpp:67:10:67:11 | a2 indirection [i] | simple.cpp:67:13:67:13 | i | | simple.cpp:78:9:78:15 | this indirection [f2, f1] | simple.cpp:79:16:79:17 | this indirection [f2, f1] | | simple.cpp:79:16:79:17 | f2 indirection [f1] | simple.cpp:79:19:79:20 | f1 | | simple.cpp:79:16:79:17 | this indirection [f2, f1] | simple.cpp:79:16:79:17 | f2 indirection [f1] | | simple.cpp:79:19:79:20 | f1 | simple.cpp:78:9:78:15 | getf2f1 indirection | +| simple.cpp:83:9:83:10 | f2 indirection [post update] [f1] | simple.cpp:83:9:83:10 | this indirection [post update] [f2, f1] | | simple.cpp:83:9:83:10 | this indirection [post update] [f2, f1] | simple.cpp:84:14:84:20 | this indirection [f2, f1] | -| simple.cpp:83:9:83:28 | ... = ... | simple.cpp:83:12:83:13 | f2 indirection [post update] [f1] | -| simple.cpp:83:12:83:13 | f2 indirection [post update] [f1] | simple.cpp:83:9:83:10 | this indirection [post update] [f2, f1] | +| simple.cpp:83:9:83:28 | ... = ... | simple.cpp:83:9:83:10 | f2 indirection [post update] [f1] | | simple.cpp:83:17:83:26 | call to user_input | simple.cpp:83:9:83:28 | ... = ... | | simple.cpp:84:14:84:20 | this indirection [f2, f1] | simple.cpp:78:9:78:15 | this indirection [f2, f1] | | simple.cpp:84:14:84:20 | this indirection [f2, f1] | simple.cpp:84:14:84:20 | call to getf2f1 | -| simple.cpp:92:5:92:22 | ... = ... | simple.cpp:92:7:92:7 | a indirection [post update] [i] | -| simple.cpp:92:7:92:7 | a indirection [post update] [i] | simple.cpp:94:10:94:11 | a2 indirection [i] | +| simple.cpp:92:5:92:5 | a indirection [post update] [i] | simple.cpp:94:10:94:11 | a2 indirection [i] | +| simple.cpp:92:5:92:22 | ... = ... | simple.cpp:92:5:92:5 | a indirection [post update] [i] | | simple.cpp:92:11:92:20 | call to user_input | simple.cpp:92:5:92:22 | ... = ... | | simple.cpp:94:10:94:11 | a2 indirection [i] | simple.cpp:94:13:94:13 | i | | simple.cpp:103:24:103:24 | x | simple.cpp:104:14:104:14 | x | @@ -742,21 +726,19 @@ edges | struct_init.c:20:13:20:14 | definition of ab indirection [a] | struct_init.c:22:8:22:9 | ab indirection [a] | | struct_init.c:20:13:20:14 | definition of ab indirection [a] | struct_init.c:24:10:24:12 | & ... indirection [a] | | struct_init.c:20:13:20:14 | definition of ab indirection [a] | struct_init.c:28:5:28:7 | & ... indirection [a] | -| struct_init.c:20:17:20:36 | definition of ab indirection [post update] [a] | struct_init.c:20:13:20:14 | definition of ab indirection [a] | -| struct_init.c:20:20:20:29 | call to user_input | struct_init.c:20:17:20:36 | definition of ab indirection [post update] [a] | +| struct_init.c:20:13:20:14 | definition of ab indirection [post update] [a] | struct_init.c:20:13:20:14 | definition of ab indirection [a] | +| struct_init.c:20:20:20:29 | call to user_input | struct_init.c:20:13:20:14 | definition of ab indirection [post update] [a] | | struct_init.c:20:20:20:29 | call to user_input | struct_init.c:20:20:20:29 | call to user_input | | struct_init.c:22:8:22:9 | ab indirection [a] | struct_init.c:22:11:22:11 | a | | struct_init.c:24:10:24:12 | & ... indirection [a] | struct_init.c:14:24:14:25 | ab indirection [a] | | struct_init.c:26:16:26:20 | definition of outer indirection [nestedAB, a] | struct_init.c:31:8:31:12 | outer indirection [nestedAB, a] | | struct_init.c:26:16:26:20 | definition of outer indirection [nestedAB, a] | struct_init.c:36:11:36:15 | outer indirection [nestedAB, a] | -| struct_init.c:26:23:29:3 | definition of outer indirection [post update] [nestedAB, a] | struct_init.c:26:16:26:20 | definition of outer indirection [nestedAB, a] | -| struct_init.c:26:23:29:3 | definition of outer indirection [post update] [nestedAB, a] | struct_init.c:26:16:26:20 | definition of outer indirection [nestedAB, a] | -| struct_init.c:26:23:29:3 | definition of outer indirection [post update] [pointerAB indirection, a] | struct_init.c:33:8:33:12 | outer indirection [pointerAB indirection, a] | -| struct_init.c:27:5:27:23 | {...} indirection [post update] [a] | struct_init.c:26:23:29:3 | definition of outer indirection [post update] [nestedAB, a] | -| struct_init.c:27:5:27:23 | {...} indirection [post update] [a] | struct_init.c:26:23:29:3 | definition of outer indirection [post update] [nestedAB, a] | -| struct_init.c:27:7:27:16 | call to user_input | struct_init.c:27:5:27:23 | {...} indirection [post update] [a] | +| struct_init.c:26:16:26:20 | definition of outer indirection [post update] [nestedAB, a] | struct_init.c:26:16:26:20 | definition of outer indirection [nestedAB, a] | +| struct_init.c:26:16:26:20 | definition of outer indirection [post update] [pointerAB indirection, a] | struct_init.c:33:8:33:12 | outer indirection [pointerAB indirection, a] | +| struct_init.c:26:23:29:3 | {...} indirection [post update] [a] | struct_init.c:26:16:26:20 | definition of outer indirection [post update] [nestedAB, a] | +| struct_init.c:27:7:27:16 | call to user_input | struct_init.c:26:23:29:3 | {...} indirection [post update] [a] | | struct_init.c:27:7:27:16 | call to user_input | struct_init.c:27:7:27:16 | call to user_input | -| struct_init.c:28:5:28:7 | & ... indirection [a] | struct_init.c:26:23:29:3 | definition of outer indirection [post update] [pointerAB indirection, a] | +| struct_init.c:28:5:28:7 | & ... indirection [a] | struct_init.c:26:16:26:20 | definition of outer indirection [post update] [pointerAB indirection, a] | | struct_init.c:31:8:31:12 | outer indirection [nestedAB, a] | struct_init.c:31:14:31:21 | nestedAB indirection [a] | | struct_init.c:31:14:31:21 | nestedAB indirection [a] | struct_init.c:31:23:31:23 | a | | struct_init.c:33:8:33:12 | outer indirection [pointerAB indirection, a] | struct_init.c:33:14:33:22 | pointerAB indirection [a] | @@ -764,20 +746,20 @@ edges | struct_init.c:36:10:36:24 | & ... indirection [a] | struct_init.c:14:24:14:25 | ab indirection [a] | | struct_init.c:36:11:36:15 | outer indirection [nestedAB, a] | struct_init.c:36:10:36:24 | & ... indirection [a] | | struct_init.c:40:13:40:14 | definition of ab indirection [a] | struct_init.c:43:5:43:7 | & ... indirection [a] | -| struct_init.c:40:17:40:36 | definition of ab indirection [post update] [a] | struct_init.c:40:13:40:14 | definition of ab indirection [a] | -| struct_init.c:40:20:40:29 | call to user_input | struct_init.c:40:17:40:36 | definition of ab indirection [post update] [a] | +| struct_init.c:40:13:40:14 | definition of ab indirection [post update] [a] | struct_init.c:40:13:40:14 | definition of ab indirection [a] | +| struct_init.c:40:20:40:29 | call to user_input | struct_init.c:40:13:40:14 | definition of ab indirection [post update] [a] | | struct_init.c:40:20:40:29 | call to user_input | struct_init.c:40:20:40:29 | call to user_input | -| struct_init.c:41:23:44:3 | definition of outer indirection [post update] [pointerAB indirection, a] | struct_init.c:46:10:46:14 | outer indirection [pointerAB indirection, a] | -| struct_init.c:43:5:43:7 | & ... indirection [a] | struct_init.c:41:23:44:3 | definition of outer indirection [post update] [pointerAB indirection, a] | +| struct_init.c:41:16:41:20 | definition of outer indirection [post update] [pointerAB indirection, a] | struct_init.c:46:10:46:14 | outer indirection [pointerAB indirection, a] | +| struct_init.c:43:5:43:7 | & ... indirection [a] | struct_init.c:41:16:41:20 | definition of outer indirection [post update] [pointerAB indirection, a] | | struct_init.c:46:10:46:14 | outer indirection [pointerAB indirection, a] | struct_init.c:46:16:46:24 | pointerAB indirection [a] | | struct_init.c:46:16:46:24 | pointerAB indirection [a] | struct_init.c:14:24:14:25 | ab indirection [a] | nodes | A.cpp:23:10:23:10 | c | semmle.label | c | +| A.cpp:25:7:25:10 | this indirection [post update] [c] | semmle.label | this indirection [post update] [c] | | A.cpp:25:7:25:17 | ... = ... | semmle.label | ... = ... | -| A.cpp:25:13:25:13 | this indirection [post update] [c] | semmle.label | this indirection [post update] [c] | | A.cpp:27:17:27:17 | c | semmle.label | c | +| A.cpp:27:22:27:25 | this indirection [post update] [c] | semmle.label | this indirection [post update] [c] | | A.cpp:27:22:27:32 | ... = ... | semmle.label | ... = ... | -| A.cpp:27:28:27:28 | this indirection [post update] [c] | semmle.label | this indirection [post update] [c] | | A.cpp:28:8:28:10 | get indirection | semmle.label | get indirection | | A.cpp:28:8:28:10 | this indirection [c] | semmle.label | this indirection [c] | | A.cpp:28:23:28:26 | this indirection [c] | semmle.label | this indirection [c] | @@ -824,8 +806,8 @@ nodes | A.cpp:90:7:90:8 | set output argument [c] | semmle.label | set output argument [c] | | A.cpp:90:15:90:15 | c | semmle.label | c | | A.cpp:98:12:98:18 | new | semmle.label | new | +| A.cpp:100:5:100:6 | c1 indirection [post update] [a] | semmle.label | c1 indirection [post update] [a] | | A.cpp:100:5:100:13 | ... = ... | semmle.label | ... = ... | -| A.cpp:100:9:100:9 | c1 indirection [post update] [a] | semmle.label | c1 indirection [post update] [a] | | A.cpp:101:8:101:9 | c1 indirection [a] | semmle.label | c1 indirection [a] | | A.cpp:103:14:103:14 | c indirection [a] | semmle.label | c indirection [a] | | A.cpp:107:12:107:13 | c1 indirection [a] | semmle.label | c1 indirection [a] | @@ -839,15 +821,15 @@ nodes | A.cpp:132:10:132:10 | b indirection [c] | semmle.label | b indirection [c] | | A.cpp:132:10:132:13 | c | semmle.label | c | | A.cpp:140:13:140:13 | b | semmle.label | b | +| A.cpp:142:7:142:7 | b indirection [post update] [c] | semmle.label | b indirection [post update] [c] | | A.cpp:142:7:142:20 | ... = ... | semmle.label | ... = ... | -| A.cpp:142:10:142:10 | b indirection [post update] [c] | semmle.label | b indirection [post update] [c] | | A.cpp:142:14:142:20 | new | semmle.label | new | +| A.cpp:143:7:143:10 | this indirection [post update] [b indirection, c] | semmle.label | this indirection [post update] [b indirection, c] | +| A.cpp:143:7:143:10 | this indirection [post update] [b] | semmle.label | this indirection [post update] [b] | +| A.cpp:143:7:143:10 | this indirection [post update] [b] | semmle.label | this indirection [post update] [b] | | A.cpp:143:7:143:31 | ... = ... | semmle.label | ... = ... | | A.cpp:143:7:143:31 | ... = ... | semmle.label | ... = ... | | A.cpp:143:7:143:31 | ... = ... indirection [c] | semmle.label | ... = ... indirection [c] | -| A.cpp:143:13:143:13 | this indirection [post update] [b indirection, c] | semmle.label | this indirection [post update] [b indirection, c] | -| A.cpp:143:13:143:13 | this indirection [post update] [b] | semmle.label | this indirection [post update] [b] | -| A.cpp:143:13:143:13 | this indirection [post update] [b] | semmle.label | this indirection [post update] [b] | | A.cpp:143:25:143:31 | new | semmle.label | new | | A.cpp:150:12:150:18 | new | semmle.label | new | | A.cpp:151:12:151:24 | call to D [b indirection, c] | semmle.label | call to D [b indirection, c] | @@ -883,10 +865,10 @@ nodes | A.cpp:181:32:181:35 | next indirection [next indirection, head] | semmle.label | next indirection [next indirection, head] | | A.cpp:183:7:183:10 | this indirection [post update] [head] | semmle.label | this indirection [post update] [head] | | A.cpp:183:7:183:20 | ... = ... | semmle.label | ... = ... | +| A.cpp:184:7:184:10 | this indirection [post update] [next indirection, head] | semmle.label | this indirection [post update] [next indirection, head] | +| A.cpp:184:7:184:10 | this indirection [post update] [next indirection, next indirection, head] | semmle.label | this indirection [post update] [next indirection, next indirection, head] | | A.cpp:184:7:184:23 | ... = ... indirection [head] | semmle.label | ... = ... indirection [head] | | A.cpp:184:7:184:23 | ... = ... indirection [next indirection, head] | semmle.label | ... = ... indirection [next indirection, head] | -| A.cpp:184:13:184:16 | this indirection [post update] [next indirection, head] | semmle.label | this indirection [post update] [next indirection, head] | -| A.cpp:184:13:184:16 | this indirection [post update] [next indirection, next indirection, head] | semmle.label | this indirection [post update] [next indirection, next indirection, head] | | B.cpp:6:15:6:24 | new | semmle.label | new | | B.cpp:7:16:7:35 | call to Box1 [elem1] | semmle.label | call to Box1 [elem1] | | B.cpp:7:25:7:25 | e | semmle.label | e | @@ -905,25 +887,25 @@ nodes | B.cpp:19:14:19:17 | box1 indirection [elem2] | semmle.label | box1 indirection [elem2] | | B.cpp:33:16:33:17 | e1 | semmle.label | e1 | | B.cpp:33:26:33:27 | e2 | semmle.label | e2 | +| B.cpp:35:7:35:10 | this indirection [post update] [elem1] | semmle.label | this indirection [post update] [elem1] | | B.cpp:35:7:35:22 | ... = ... | semmle.label | ... = ... | -| B.cpp:35:13:35:17 | this indirection [post update] [elem1] | semmle.label | this indirection [post update] [elem1] | +| B.cpp:36:7:36:10 | this indirection [post update] [elem2] | semmle.label | this indirection [post update] [elem2] | | B.cpp:36:7:36:22 | ... = ... | semmle.label | ... = ... | -| B.cpp:36:13:36:17 | this indirection [post update] [elem2] | semmle.label | this indirection [post update] [elem2] | | B.cpp:44:16:44:17 | b1 indirection [elem1] | semmle.label | b1 indirection [elem1] | | B.cpp:44:16:44:17 | b1 indirection [elem2] | semmle.label | b1 indirection [elem2] | +| B.cpp:46:7:46:10 | this indirection [post update] [box1 indirection, elem1] | semmle.label | this indirection [post update] [box1 indirection, elem1] | +| B.cpp:46:7:46:10 | this indirection [post update] [box1 indirection, elem2] | semmle.label | this indirection [post update] [box1 indirection, elem2] | | B.cpp:46:7:46:21 | ... = ... indirection [elem1] | semmle.label | ... = ... indirection [elem1] | | B.cpp:46:7:46:21 | ... = ... indirection [elem2] | semmle.label | ... = ... indirection [elem2] | -| B.cpp:46:13:46:16 | this indirection [post update] [box1 indirection, elem1] | semmle.label | this indirection [post update] [box1 indirection, elem1] | -| B.cpp:46:13:46:16 | this indirection [post update] [box1 indirection, elem2] | semmle.label | this indirection [post update] [box1 indirection, elem2] | | C.cpp:18:12:18:18 | call to C [s1] | semmle.label | call to C [s1] | | C.cpp:18:12:18:18 | call to C [s3] | semmle.label | call to C [s3] | | C.cpp:19:5:19:5 | c indirection [s1] | semmle.label | c indirection [s1] | | C.cpp:19:5:19:5 | c indirection [s3] | semmle.label | c indirection [s3] | -| C.cpp:22:9:22:22 | this indirection [post update] [s1] | semmle.label | this indirection [post update] [s1] | +| C.cpp:22:3:22:3 | this indirection [post update] [s1] | semmle.label | this indirection [post update] [s1] | | C.cpp:22:12:22:21 | new | semmle.label | new | | C.cpp:22:12:22:21 | new | semmle.label | new | +| C.cpp:24:5:24:8 | this indirection [post update] [s3] | semmle.label | this indirection [post update] [s3] | | C.cpp:24:5:24:25 | ... = ... | semmle.label | ... = ... | -| C.cpp:24:11:24:12 | this indirection [post update] [s3] | semmle.label | this indirection [post update] [s3] | | C.cpp:24:16:24:25 | new | semmle.label | new | | C.cpp:27:8:27:11 | this indirection [s1] | semmle.label | this indirection [s1] | | C.cpp:27:8:27:11 | this indirection [s3] | semmle.label | this indirection [s3] | @@ -947,19 +929,19 @@ nodes | D.cpp:22:10:22:33 | call to getElem | semmle.label | call to getElem | | D.cpp:22:14:22:20 | call to getBox1 indirection [elem] | semmle.label | call to getBox1 indirection [elem] | | D.cpp:28:15:28:24 | new | semmle.label | new | +| D.cpp:30:5:30:5 | b indirection [post update] [box indirection, elem] | semmle.label | b indirection [post update] [box indirection, elem] | | D.cpp:30:5:30:20 | ... = ... | semmle.label | ... = ... | -| D.cpp:30:8:30:10 | b indirection [post update] [box indirection, elem] | semmle.label | b indirection [post update] [box indirection, elem] | -| D.cpp:30:13:30:16 | box indirection [post update] [elem] | semmle.label | box indirection [post update] [elem] | +| D.cpp:30:8:30:10 | box indirection [post update] [elem] | semmle.label | box indirection [post update] [elem] | | D.cpp:31:14:31:14 | b indirection [box indirection, elem] | semmle.label | b indirection [box indirection, elem] | | D.cpp:35:15:35:24 | new | semmle.label | new | -| D.cpp:37:8:37:10 | b indirection [post update] [box indirection, elem] | semmle.label | b indirection [post update] [box indirection, elem] | +| D.cpp:37:5:37:5 | b indirection [post update] [box indirection, elem] | semmle.label | b indirection [post update] [box indirection, elem] | | D.cpp:37:8:37:10 | setElem output argument [elem] | semmle.label | setElem output argument [elem] | | D.cpp:37:21:37:21 | e | semmle.label | e | | D.cpp:38:14:38:14 | b indirection [box indirection, elem] | semmle.label | b indirection [box indirection, elem] | | D.cpp:42:15:42:24 | new | semmle.label | new | | D.cpp:44:5:44:5 | getBox1 output argument [box indirection, elem] | semmle.label | getBox1 output argument [box indirection, elem] | | D.cpp:44:5:44:26 | ... = ... | semmle.label | ... = ... | -| D.cpp:44:19:44:22 | call to getBox1 indirection [post update] [elem] | semmle.label | call to getBox1 indirection [post update] [elem] | +| D.cpp:44:8:44:14 | call to getBox1 indirection [post update] [elem] | semmle.label | call to getBox1 indirection [post update] [elem] | | D.cpp:45:14:45:14 | b indirection [box indirection, elem] | semmle.label | b indirection [box indirection, elem] | | D.cpp:49:15:49:24 | new | semmle.label | new | | D.cpp:51:5:51:5 | getBox1 output argument [box indirection, elem] | semmle.label | getBox1 output argument [box indirection, elem] | @@ -967,10 +949,10 @@ nodes | D.cpp:51:27:51:27 | e | semmle.label | e | | D.cpp:52:14:52:14 | b indirection [box indirection, elem] | semmle.label | b indirection [box indirection, elem] | | D.cpp:56:15:56:24 | new | semmle.label | new | +| D.cpp:58:5:58:12 | boxfield indirection [post update] [box indirection, elem] | semmle.label | boxfield indirection [post update] [box indirection, elem] | | D.cpp:58:5:58:12 | this indirection [post update] [boxfield indirection, box indirection, elem] | semmle.label | this indirection [post update] [boxfield indirection, box indirection, elem] | | D.cpp:58:5:58:27 | ... = ... | semmle.label | ... = ... | -| D.cpp:58:15:58:17 | boxfield indirection [post update] [box indirection, elem] | semmle.label | boxfield indirection [post update] [box indirection, elem] | -| D.cpp:58:20:58:23 | box indirection [post update] [elem] | semmle.label | box indirection [post update] [elem] | +| D.cpp:58:15:58:17 | box indirection [post update] [elem] | semmle.label | box indirection [post update] [elem] | | D.cpp:59:5:59:7 | this indirection [boxfield indirection, box indirection, elem] | semmle.label | this indirection [boxfield indirection, box indirection, elem] | | D.cpp:63:8:63:10 | this indirection [boxfield indirection, box indirection, elem] | semmle.label | this indirection [boxfield indirection, box indirection, elem] | | D.cpp:64:10:64:17 | boxfield indirection [box indirection, elem] | semmle.label | boxfield indirection [box indirection, elem] | @@ -982,20 +964,20 @@ nodes | E.cpp:21:13:21:16 | data indirection [buffer indirection] | semmle.label | data indirection [buffer indirection] | | E.cpp:21:18:21:23 | buffer indirection | semmle.label | buffer indirection | | E.cpp:28:21:28:23 | argument_source output argument | semmle.label | argument_source output argument | +| E.cpp:29:21:29:21 | b indirection [post update] [buffer indirection] | semmle.label | b indirection [post update] [buffer indirection] | | E.cpp:29:21:29:29 | argument_source output argument | semmle.label | argument_source output argument | -| E.cpp:29:24:29:29 | b indirection [post update] [buffer indirection] | semmle.label | b indirection [post update] [buffer indirection] | +| E.cpp:30:21:30:21 | p indirection [post update] [data, buffer indirection] | semmle.label | p indirection [post update] [data, buffer indirection] | | E.cpp:30:21:30:33 | argument_source output argument | semmle.label | argument_source output argument | -| E.cpp:30:23:30:26 | p indirection [post update] [data, buffer indirection] | semmle.label | p indirection [post update] [data, buffer indirection] | -| E.cpp:30:28:30:33 | data indirection [post update] [buffer indirection] | semmle.label | data indirection [post update] [buffer indirection] | +| E.cpp:30:23:30:26 | data indirection [post update] [buffer indirection] | semmle.label | data indirection [post update] [buffer indirection] | | E.cpp:31:10:31:12 | raw indirection | semmle.label | raw indirection | | E.cpp:32:10:32:10 | b indirection [buffer indirection] | semmle.label | b indirection [buffer indirection] | | E.cpp:32:13:32:18 | buffer indirection | semmle.label | buffer indirection | | E.cpp:33:18:33:19 | & ... indirection [data, buffer indirection] | semmle.label | & ... indirection [data, buffer indirection] | +| aliasing.cpp:9:3:9:3 | s indirection [post update] [m1] | semmle.label | s indirection [post update] [m1] | | aliasing.cpp:9:3:9:22 | ... = ... | semmle.label | ... = ... | -| aliasing.cpp:9:6:9:7 | s indirection [post update] [m1] | semmle.label | s indirection [post update] [m1] | | aliasing.cpp:9:11:9:20 | call to user_input | semmle.label | call to user_input | +| aliasing.cpp:13:3:13:3 | s indirection [post update] [m1] | semmle.label | s indirection [post update] [m1] | | aliasing.cpp:13:3:13:21 | ... = ... | semmle.label | ... = ... | -| aliasing.cpp:13:5:13:6 | s indirection [post update] [m1] | semmle.label | s indirection [post update] [m1] | | aliasing.cpp:13:10:13:19 | call to user_input | semmle.label | call to user_input | | aliasing.cpp:25:17:25:19 | pointerSetter output argument [m1] | semmle.label | pointerSetter output argument [m1] | | aliasing.cpp:26:19:26:20 | referenceSetter output argument [m1] | semmle.label | referenceSetter output argument [m1] | @@ -1003,20 +985,20 @@ nodes | aliasing.cpp:29:11:29:12 | m1 | semmle.label | m1 | | aliasing.cpp:30:8:30:9 | s2 indirection [m1] | semmle.label | s2 indirection [m1] | | aliasing.cpp:30:11:30:12 | m1 | semmle.label | m1 | +| aliasing.cpp:60:3:60:4 | s2 indirection [post update] [m1] | semmle.label | s2 indirection [post update] [m1] | | aliasing.cpp:60:3:60:22 | ... = ... | semmle.label | ... = ... | -| aliasing.cpp:60:6:60:7 | s2 indirection [post update] [m1] | semmle.label | s2 indirection [post update] [m1] | | aliasing.cpp:60:11:60:20 | call to user_input | semmle.label | call to user_input | | aliasing.cpp:62:8:62:12 | copy2 indirection [m1] | semmle.label | copy2 indirection [m1] | | aliasing.cpp:62:14:62:15 | m1 | semmle.label | m1 | +| aliasing.cpp:92:3:92:3 | w indirection [post update] [s, m1] | semmle.label | w indirection [post update] [s, m1] | | aliasing.cpp:92:3:92:23 | ... = ... | semmle.label | ... = ... | -| aliasing.cpp:92:5:92:5 | w indirection [post update] [s, m1] | semmle.label | w indirection [post update] [s, m1] | -| aliasing.cpp:92:7:92:8 | s indirection [post update] [m1] | semmle.label | s indirection [post update] [m1] | +| aliasing.cpp:92:5:92:5 | s indirection [post update] [m1] | semmle.label | s indirection [post update] [m1] | | aliasing.cpp:92:12:92:21 | call to user_input | semmle.label | call to user_input | | aliasing.cpp:93:8:93:8 | w indirection [s, m1] | semmle.label | w indirection [s, m1] | | aliasing.cpp:93:10:93:10 | s indirection [m1] | semmle.label | s indirection [m1] | | aliasing.cpp:93:12:93:13 | m1 | semmle.label | m1 | +| aliasing.cpp:98:3:98:3 | s indirection [post update] [m1] | semmle.label | s indirection [post update] [m1] | | aliasing.cpp:98:3:98:21 | ... = ... | semmle.label | ... = ... | -| aliasing.cpp:98:5:98:6 | s indirection [post update] [m1] | semmle.label | s indirection [post update] [m1] | | aliasing.cpp:98:10:98:19 | call to user_input | semmle.label | call to user_input | | aliasing.cpp:101:13:101:22 | & ... indirection | semmle.label | & ... indirection | | aliasing.cpp:101:14:101:19 | s_copy indirection [m1] | semmle.label | s_copy indirection [m1] | @@ -1031,34 +1013,34 @@ nodes | aliasing.cpp:132:8:132:14 | * ... | semmle.label | * ... | | aliasing.cpp:136:15:136:17 | taint_a_ptr output argument | semmle.label | taint_a_ptr output argument | | aliasing.cpp:137:8:137:11 | * ... | semmle.label | * ... | -| aliasing.cpp:141:17:141:20 | s indirection [post update] [data indirection] | semmle.label | s indirection [post update] [data indirection] | +| aliasing.cpp:141:15:141:15 | s indirection [post update] [data indirection] | semmle.label | s indirection [post update] [data indirection] | | aliasing.cpp:141:17:141:20 | taint_a_ptr output argument | semmle.label | taint_a_ptr output argument | | aliasing.cpp:143:8:143:8 | s indirection [data indirection] | semmle.label | s indirection [data indirection] | | aliasing.cpp:143:8:143:16 | access to array | semmle.label | access to array | | aliasing.cpp:143:10:143:13 | data indirection | semmle.label | data indirection | +| aliasing.cpp:158:15:158:15 | s indirection [post update] [data] | semmle.label | s indirection [post update] [data] | | aliasing.cpp:158:15:158:20 | taint_a_ptr output argument | semmle.label | taint_a_ptr output argument | -| aliasing.cpp:158:17:158:20 | s indirection [post update] [data] | semmle.label | s indirection [post update] [data] | | aliasing.cpp:159:8:159:14 | * ... | semmle.label | * ... | | aliasing.cpp:159:9:159:9 | s indirection [data] | semmle.label | s indirection [data] | +| aliasing.cpp:164:15:164:15 | s indirection [post update] [data] | semmle.label | s indirection [post update] [data] | | aliasing.cpp:164:15:164:20 | taint_a_ptr output argument | semmle.label | taint_a_ptr output argument | -| aliasing.cpp:164:17:164:20 | s indirection [post update] [data] | semmle.label | s indirection [post update] [data] | | aliasing.cpp:165:8:165:8 | s indirection [data] | semmle.label | s indirection [data] | | aliasing.cpp:165:8:165:16 | access to array | semmle.label | access to array | | aliasing.cpp:175:15:175:22 | taint_a_ptr output argument | semmle.label | taint_a_ptr output argument | -| aliasing.cpp:175:19:175:19 | s2 indirection [post update] [s, m1] | semmle.label | s2 indirection [post update] [s, m1] | -| aliasing.cpp:175:21:175:22 | s indirection [post update] [m1] | semmle.label | s indirection [post update] [m1] | +| aliasing.cpp:175:16:175:17 | s2 indirection [post update] [s, m1] | semmle.label | s2 indirection [post update] [s, m1] | +| aliasing.cpp:175:19:175:19 | s indirection [post update] [m1] | semmle.label | s indirection [post update] [m1] | | aliasing.cpp:176:8:176:9 | s2 indirection [s, m1] | semmle.label | s2 indirection [s, m1] | | aliasing.cpp:176:11:176:11 | s indirection [m1] | semmle.label | s indirection [m1] | | aliasing.cpp:176:13:176:14 | m1 | semmle.label | m1 | | aliasing.cpp:187:15:187:22 | taint_a_ptr output argument | semmle.label | taint_a_ptr output argument | -| aliasing.cpp:187:19:187:19 | s2 indirection [post update] [s, m1] | semmle.label | s2 indirection [post update] [s, m1] | -| aliasing.cpp:187:21:187:22 | s indirection [post update] [m1] | semmle.label | s indirection [post update] [m1] | +| aliasing.cpp:187:16:187:17 | s2 indirection [post update] [s, m1] | semmle.label | s2 indirection [post update] [s, m1] | +| aliasing.cpp:187:19:187:19 | s indirection [post update] [m1] | semmle.label | s indirection [post update] [m1] | | aliasing.cpp:189:8:189:11 | s2_2 indirection [s, m1] | semmle.label | s2_2 indirection [s, m1] | | aliasing.cpp:189:13:189:13 | s indirection [m1] | semmle.label | s indirection [m1] | | aliasing.cpp:189:15:189:16 | m1 | semmle.label | m1 | | aliasing.cpp:200:15:200:24 | taint_a_ptr output argument | semmle.label | taint_a_ptr output argument | -| aliasing.cpp:200:21:200:21 | ps2 indirection [post update] [s, m1] | semmle.label | ps2 indirection [post update] [s, m1] | -| aliasing.cpp:200:23:200:24 | s indirection [post update] [m1] | semmle.label | s indirection [post update] [m1] | +| aliasing.cpp:200:16:200:18 | ps2 indirection [post update] [s, m1] | semmle.label | ps2 indirection [post update] [s, m1] | +| aliasing.cpp:200:21:200:21 | s indirection [post update] [m1] | semmle.label | s indirection [post update] [m1] | | aliasing.cpp:201:8:201:10 | ps2 indirection [s, m1] | semmle.label | ps2 indirection [s, m1] | | aliasing.cpp:201:13:201:13 | s indirection [m1] | semmle.label | s indirection [m1] | | aliasing.cpp:201:15:201:16 | m1 | semmle.label | m1 | @@ -1070,10 +1052,10 @@ nodes | arrays.cpp:15:14:15:23 | call to user_input | semmle.label | call to user_input | | arrays.cpp:16:8:16:13 | access to array | semmle.label | access to array | | arrays.cpp:17:8:17:13 | access to array | semmle.label | access to array | +| arrays.cpp:36:3:36:3 | o indirection [post update] [nested, arr, data] | semmle.label | o indirection [post update] [nested, arr, data] | +| arrays.cpp:36:3:36:17 | access to array indirection [post update] [data] | semmle.label | access to array indirection [post update] [data] | | arrays.cpp:36:3:36:37 | ... = ... | semmle.label | ... = ... | -| arrays.cpp:36:5:36:10 | o indirection [post update] [nested, arr, data] | semmle.label | o indirection [post update] [nested, arr, data] | -| arrays.cpp:36:12:36:14 | nested indirection [post update] [arr, data] | semmle.label | nested indirection [post update] [arr, data] | -| arrays.cpp:36:19:36:22 | access to array indirection [post update] [data] | semmle.label | access to array indirection [post update] [data] | +| arrays.cpp:36:5:36:10 | nested indirection [post update] [arr, data] | semmle.label | nested indirection [post update] [arr, data] | | arrays.cpp:36:26:36:35 | call to user_input | semmle.label | call to user_input | | arrays.cpp:37:8:37:8 | o indirection [nested, arr, data] | semmle.label | o indirection [nested, arr, data] | | arrays.cpp:37:8:37:22 | access to array indirection [data] | semmle.label | access to array indirection [data] | @@ -1083,10 +1065,10 @@ nodes | arrays.cpp:38:8:38:22 | access to array indirection [data] | semmle.label | access to array indirection [data] | | arrays.cpp:38:10:38:15 | nested indirection [arr, data] | semmle.label | nested indirection [arr, data] | | arrays.cpp:38:24:38:27 | data | semmle.label | data | +| arrays.cpp:42:3:42:3 | o indirection [post update] [indirect indirection, arr, data] | semmle.label | o indirection [post update] [indirect indirection, arr, data] | +| arrays.cpp:42:3:42:20 | access to array indirection [post update] [data] | semmle.label | access to array indirection [post update] [data] | | arrays.cpp:42:3:42:40 | ... = ... | semmle.label | ... = ... | -| arrays.cpp:42:5:42:12 | o indirection [post update] [indirect indirection, arr, data] | semmle.label | o indirection [post update] [indirect indirection, arr, data] | -| arrays.cpp:42:15:42:17 | indirect indirection [post update] [arr, data] | semmle.label | indirect indirection [post update] [arr, data] | -| arrays.cpp:42:22:42:25 | access to array indirection [post update] [data] | semmle.label | access to array indirection [post update] [data] | +| arrays.cpp:42:5:42:12 | indirect indirection [post update] [arr, data] | semmle.label | indirect indirection [post update] [arr, data] | | arrays.cpp:42:29:42:38 | call to user_input | semmle.label | call to user_input | | arrays.cpp:43:8:43:8 | o indirection [indirect indirection, arr, data] | semmle.label | o indirection [indirect indirection, arr, data] | | arrays.cpp:43:8:43:25 | access to array indirection [data] | semmle.label | access to array indirection [data] | @@ -1096,10 +1078,10 @@ nodes | arrays.cpp:44:8:44:25 | access to array indirection [data] | semmle.label | access to array indirection [data] | | arrays.cpp:44:10:44:17 | indirect indirection [arr, data] | semmle.label | indirect indirection [arr, data] | | arrays.cpp:44:27:44:30 | data | semmle.label | data | +| arrays.cpp:48:3:48:3 | o indirection [post update] [indirect indirection, ptr indirection, data] | semmle.label | o indirection [post update] [indirect indirection, ptr indirection, data] | +| arrays.cpp:48:3:48:20 | access to array indirection [post update] [data] | semmle.label | access to array indirection [post update] [data] | | arrays.cpp:48:3:48:40 | ... = ... | semmle.label | ... = ... | -| arrays.cpp:48:5:48:12 | o indirection [post update] [indirect indirection, ptr indirection, data] | semmle.label | o indirection [post update] [indirect indirection, ptr indirection, data] | -| arrays.cpp:48:15:48:17 | indirect indirection [post update] [ptr indirection, data] | semmle.label | indirect indirection [post update] [ptr indirection, data] | -| arrays.cpp:48:22:48:25 | access to array indirection [post update] [data] | semmle.label | access to array indirection [post update] [data] | +| arrays.cpp:48:5:48:12 | indirect indirection [post update] [ptr indirection, data] | semmle.label | indirect indirection [post update] [ptr indirection, data] | | arrays.cpp:48:29:48:38 | call to user_input | semmle.label | call to user_input | | arrays.cpp:49:8:49:8 | o indirection [indirect indirection, ptr indirection, data] | semmle.label | o indirection [indirect indirection, ptr indirection, data] | | arrays.cpp:49:8:49:25 | access to array indirection [data] | semmle.label | access to array indirection [data] | @@ -1112,11 +1094,11 @@ nodes | arrays.cpp:50:20:50:22 | ptr indirection [data] | semmle.label | ptr indirection [data] | | arrays.cpp:50:27:50:30 | data | semmle.label | data | | by_reference.cpp:11:48:11:52 | value | semmle.label | value | +| by_reference.cpp:12:5:12:5 | s indirection [post update] [a] | semmle.label | s indirection [post update] [a] | | by_reference.cpp:12:5:12:16 | ... = ... | semmle.label | ... = ... | -| by_reference.cpp:12:8:12:8 | s indirection [post update] [a] | semmle.label | s indirection [post update] [a] | | by_reference.cpp:15:26:15:30 | value | semmle.label | value | +| by_reference.cpp:16:5:16:8 | this indirection [post update] [a] | semmle.label | this indirection [post update] [a] | | by_reference.cpp:16:5:16:19 | ... = ... | semmle.label | ... = ... | -| by_reference.cpp:16:11:16:11 | this indirection [post update] [a] | semmle.label | this indirection [post update] [a] | | by_reference.cpp:19:28:19:32 | value | semmle.label | value | | by_reference.cpp:20:5:20:8 | setDirectly output argument [a] | semmle.label | setDirectly output argument [a] | | by_reference.cpp:20:23:20:27 | value | semmle.label | value | @@ -1155,28 +1137,28 @@ nodes | by_reference.cpp:68:21:68:30 | call to user_input | semmle.label | call to user_input | | by_reference.cpp:69:8:69:20 | call to nonMemberGetA | semmle.label | call to nonMemberGetA | | by_reference.cpp:69:22:69:23 | & ... indirection [a] | semmle.label | & ... indirection [a] | +| by_reference.cpp:84:3:84:7 | inner indirection [post update] [a] | semmle.label | inner indirection [post update] [a] | | by_reference.cpp:84:3:84:25 | ... = ... | semmle.label | ... = ... | -| by_reference.cpp:84:10:84:10 | inner indirection [post update] [a] | semmle.label | inner indirection [post update] [a] | | by_reference.cpp:84:14:84:23 | call to user_input | semmle.label | call to user_input | +| by_reference.cpp:88:3:88:7 | inner indirection [post update] [a] | semmle.label | inner indirection [post update] [a] | | by_reference.cpp:88:3:88:24 | ... = ... | semmle.label | ... = ... | -| by_reference.cpp:88:9:88:9 | inner indirection [post update] [a] | semmle.label | inner indirection [post update] [a] | | by_reference.cpp:88:13:88:22 | call to user_input | semmle.label | call to user_input | | by_reference.cpp:91:25:91:26 | pa | semmle.label | pa | | by_reference.cpp:92:9:92:18 | call to user_input | semmle.label | call to user_input | | by_reference.cpp:95:25:95:26 | pa | semmle.label | pa | | by_reference.cpp:96:8:96:17 | call to user_input | semmle.label | call to user_input | | by_reference.cpp:102:21:102:39 | taint_inner_a_ptr output argument [a] | semmle.label | taint_inner_a_ptr output argument [a] | -| by_reference.cpp:102:28:102:39 | outer indirection [post update] [inner_nested, a] | semmle.label | outer indirection [post update] [inner_nested, a] | -| by_reference.cpp:103:27:103:35 | outer indirection [post update] [inner_ptr indirection, a] | semmle.label | outer indirection [post update] [inner_ptr indirection, a] | +| by_reference.cpp:102:22:102:26 | outer indirection [post update] [inner_nested, a] | semmle.label | outer indirection [post update] [inner_nested, a] | +| by_reference.cpp:103:21:103:25 | outer indirection [post update] [inner_ptr indirection, a] | semmle.label | outer indirection [post update] [inner_ptr indirection, a] | | by_reference.cpp:103:27:103:35 | taint_inner_a_ptr output argument [a] | semmle.label | taint_inner_a_ptr output argument [a] | | by_reference.cpp:104:15:104:22 | taint_a_ptr output argument | semmle.label | taint_a_ptr output argument | -| by_reference.cpp:104:22:104:22 | outer indirection [post update] [a] | semmle.label | outer indirection [post update] [a] | +| by_reference.cpp:104:16:104:20 | outer indirection [post update] [a] | semmle.label | outer indirection [post update] [a] | | by_reference.cpp:106:21:106:41 | taint_inner_a_ptr output argument [a] | semmle.label | taint_inner_a_ptr output argument [a] | -| by_reference.cpp:106:30:106:41 | pouter indirection [post update] [inner_nested, a] | semmle.label | pouter indirection [post update] [inner_nested, a] | -| by_reference.cpp:107:29:107:37 | pouter indirection [post update] [inner_ptr indirection, a] | semmle.label | pouter indirection [post update] [inner_ptr indirection, a] | +| by_reference.cpp:106:22:106:27 | pouter indirection [post update] [inner_nested, a] | semmle.label | pouter indirection [post update] [inner_nested, a] | +| by_reference.cpp:107:21:107:26 | pouter indirection [post update] [inner_ptr indirection, a] | semmle.label | pouter indirection [post update] [inner_ptr indirection, a] | | by_reference.cpp:107:29:107:37 | taint_inner_a_ptr output argument [a] | semmle.label | taint_inner_a_ptr output argument [a] | | by_reference.cpp:108:15:108:24 | taint_a_ptr output argument | semmle.label | taint_a_ptr output argument | -| by_reference.cpp:108:24:108:24 | pouter indirection [post update] [a] | semmle.label | pouter indirection [post update] [a] | +| by_reference.cpp:108:16:108:21 | pouter indirection [post update] [a] | semmle.label | pouter indirection [post update] [a] | | by_reference.cpp:110:8:110:12 | outer indirection [inner_nested, a] | semmle.label | outer indirection [inner_nested, a] | | by_reference.cpp:110:14:110:25 | inner_nested indirection [a] | semmle.label | inner_nested indirection [a] | | by_reference.cpp:110:27:110:27 | a | semmle.label | a | @@ -1193,18 +1175,18 @@ nodes | by_reference.cpp:115:27:115:27 | a | semmle.label | a | | by_reference.cpp:116:8:116:13 | pouter indirection [a] | semmle.label | pouter indirection [a] | | by_reference.cpp:116:16:116:16 | a | semmle.label | a | +| by_reference.cpp:122:21:122:25 | outer indirection [post update] [inner_nested, a] | semmle.label | outer indirection [post update] [inner_nested, a] | | by_reference.cpp:122:21:122:38 | taint_inner_a_ref output argument [a] | semmle.label | taint_inner_a_ref output argument [a] | -| by_reference.cpp:122:27:122:38 | outer indirection [post update] [inner_nested, a] | semmle.label | outer indirection [post update] [inner_nested, a] | | by_reference.cpp:123:21:123:36 | taint_inner_a_ref output argument [a] | semmle.label | taint_inner_a_ref output argument [a] | -| by_reference.cpp:123:28:123:36 | outer indirection [post update] [inner_ptr indirection, a] | semmle.label | outer indirection [post update] [inner_ptr indirection, a] | +| by_reference.cpp:123:22:123:26 | outer indirection [post update] [inner_ptr indirection, a] | semmle.label | outer indirection [post update] [inner_ptr indirection, a] | +| by_reference.cpp:124:15:124:19 | outer indirection [post update] [a] | semmle.label | outer indirection [post update] [a] | | by_reference.cpp:124:15:124:21 | taint_a_ref output argument | semmle.label | taint_a_ref output argument | -| by_reference.cpp:124:21:124:21 | outer indirection [post update] [a] | semmle.label | outer indirection [post update] [a] | +| by_reference.cpp:126:21:126:26 | pouter indirection [post update] [inner_nested, a] | semmle.label | pouter indirection [post update] [inner_nested, a] | | by_reference.cpp:126:21:126:40 | taint_inner_a_ref output argument [a] | semmle.label | taint_inner_a_ref output argument [a] | -| by_reference.cpp:126:29:126:40 | pouter indirection [post update] [inner_nested, a] | semmle.label | pouter indirection [post update] [inner_nested, a] | | by_reference.cpp:127:21:127:38 | taint_inner_a_ref output argument [a] | semmle.label | taint_inner_a_ref output argument [a] | -| by_reference.cpp:127:30:127:38 | pouter indirection [post update] [inner_ptr indirection, a] | semmle.label | pouter indirection [post update] [inner_ptr indirection, a] | +| by_reference.cpp:127:22:127:27 | pouter indirection [post update] [inner_ptr indirection, a] | semmle.label | pouter indirection [post update] [inner_ptr indirection, a] | +| by_reference.cpp:128:15:128:20 | pouter indirection [post update] [a] | semmle.label | pouter indirection [post update] [a] | | by_reference.cpp:128:15:128:23 | taint_a_ref output argument | semmle.label | taint_a_ref output argument | -| by_reference.cpp:128:23:128:23 | pouter indirection [post update] [a] | semmle.label | pouter indirection [post update] [a] | | by_reference.cpp:130:8:130:12 | outer indirection [inner_nested, a] | semmle.label | outer indirection [inner_nested, a] | | by_reference.cpp:130:14:130:25 | inner_nested indirection [a] | semmle.label | inner_nested indirection [a] | | by_reference.cpp:130:27:130:27 | a | semmle.label | a | @@ -1222,91 +1204,91 @@ nodes | by_reference.cpp:136:8:136:13 | pouter indirection [a] | semmle.label | pouter indirection [a] | | by_reference.cpp:136:16:136:16 | a | semmle.label | a | | clearning.cpp:32:3:32:25 | ... = ... | semmle.label | ... = ... | -| clearning.cpp:32:6:32:6 | s indirection [post update] [x indirection] | semmle.label | s indirection [post update] [x indirection] | +| clearning.cpp:32:4:32:4 | s indirection [post update] [x indirection] | semmle.label | s indirection [post update] [x indirection] | | clearning.cpp:32:10:32:19 | call to user_input | semmle.label | call to user_input | | clearning.cpp:33:5:33:5 | s indirection [x indirection] | semmle.label | s indirection [x indirection] | | clearning.cpp:34:8:34:11 | * ... | semmle.label | * ... | | clearning.cpp:34:9:34:9 | s indirection [x indirection] | semmle.label | s indirection [x indirection] | | clearning.cpp:53:3:53:25 | ... = ... | semmle.label | ... = ... | -| clearning.cpp:53:6:53:6 | s indirection [post update] [x indirection] | semmle.label | s indirection [post update] [x indirection] | +| clearning.cpp:53:4:53:4 | s indirection [post update] [x indirection] | semmle.label | s indirection [post update] [x indirection] | | clearning.cpp:53:10:53:19 | call to user_input | semmle.label | call to user_input | +| clearning.cpp:54:3:54:3 | s indirection [post update] [x indirection] | semmle.label | s indirection [post update] [x indirection] | | clearning.cpp:54:3:54:3 | s indirection [x indirection] | semmle.label | s indirection [x indirection] | | clearning.cpp:54:3:54:7 | ... ++ indirection | semmle.label | ... ++ indirection | | clearning.cpp:54:3:54:7 | ... ++ indirection | semmle.label | ... ++ indirection | -| clearning.cpp:54:5:54:5 | s indirection [post update] [x indirection] | semmle.label | s indirection [post update] [x indirection] | | clearning.cpp:54:5:54:5 | x indirection | semmle.label | x indirection | | clearning.cpp:55:8:55:8 | s indirection [x indirection] | semmle.label | s indirection [x indirection] | | clearning.cpp:55:10:55:10 | x indirection | semmle.label | x indirection | | clearning.cpp:60:3:60:22 | ... = ... | semmle.label | ... = ... | -| clearning.cpp:60:7:60:7 | s indirection [post update] [x indirection] | semmle.label | s indirection [post update] [x indirection] | +| clearning.cpp:60:5:60:5 | s indirection [post update] [x indirection] | semmle.label | s indirection [post update] [x indirection] | | clearning.cpp:60:11:60:20 | call to user_input | semmle.label | call to user_input | +| clearning.cpp:61:3:61:3 | s indirection [post update] [x indirection] | semmle.label | s indirection [post update] [x indirection] | | clearning.cpp:61:3:61:3 | s indirection [x indirection] | semmle.label | s indirection [x indirection] | | clearning.cpp:61:3:61:7 | ... ++ indirection | semmle.label | ... ++ indirection | | clearning.cpp:61:3:61:7 | ... ++ indirection | semmle.label | ... ++ indirection | -| clearning.cpp:61:5:61:5 | s indirection [post update] [x indirection] | semmle.label | s indirection [post update] [x indirection] | | clearning.cpp:61:5:61:5 | x indirection | semmle.label | x indirection | | clearning.cpp:62:8:62:8 | s indirection [x indirection] | semmle.label | s indirection [x indirection] | | clearning.cpp:62:10:62:10 | x indirection | semmle.label | x indirection | +| clearning.cpp:74:18:74:18 | s indirection [post update] [val indirection] | semmle.label | s indirection [post update] [val indirection] | | clearning.cpp:74:20:74:22 | argument_source output argument | semmle.label | argument_source output argument | -| clearning.cpp:74:20:74:22 | s indirection [post update] [val indirection] | semmle.label | s indirection [post update] [val indirection] | | clearning.cpp:76:7:76:12 | * ... | semmle.label | * ... | | clearning.cpp:76:8:76:8 | s indirection [val indirection] | semmle.label | s indirection [val indirection] | +| clearning.cpp:81:18:81:18 | s indirection [post update] [val indirection] | semmle.label | s indirection [post update] [val indirection] | | clearning.cpp:81:20:81:22 | argument_source output argument | semmle.label | argument_source output argument | -| clearning.cpp:81:20:81:22 | s indirection [post update] [val indirection] | semmle.label | s indirection [post update] [val indirection] | +| clearning.cpp:83:5:83:5 | s indirection [post update] [val indirection] | semmle.label | s indirection [post update] [val indirection] | | clearning.cpp:83:5:83:21 | ... = ... indirection | semmle.label | ... = ... indirection | -| clearning.cpp:83:7:83:9 | s indirection [post update] [val indirection] | semmle.label | s indirection [post update] [val indirection] | | clearning.cpp:83:13:83:13 | s indirection [val indirection] | semmle.label | s indirection [val indirection] | | clearning.cpp:83:13:83:21 | ... + ... indirection | semmle.label | ... + ... indirection | | clearning.cpp:83:15:83:17 | val indirection | semmle.label | val indirection | | clearning.cpp:84:7:84:12 | * ... | semmle.label | * ... | | clearning.cpp:84:8:84:8 | s indirection [val indirection] | semmle.label | s indirection [val indirection] | +| clearning.cpp:89:18:89:18 | s indirection [post update] [val indirection] | semmle.label | s indirection [post update] [val indirection] | | clearning.cpp:89:20:89:22 | argument_source output argument | semmle.label | argument_source output argument | -| clearning.cpp:89:20:89:22 | s indirection [post update] [val indirection] | semmle.label | s indirection [post update] [val indirection] | +| clearning.cpp:90:3:90:3 | s indirection [post update] [val indirection] | semmle.label | s indirection [post update] [val indirection] | | clearning.cpp:90:3:90:3 | s indirection [val indirection] | semmle.label | s indirection [val indirection] | | clearning.cpp:90:3:90:9 | ... ++ indirection | semmle.label | ... ++ indirection | | clearning.cpp:90:3:90:9 | ... ++ indirection | semmle.label | ... ++ indirection | -| clearning.cpp:90:5:90:7 | s indirection [post update] [val indirection] | semmle.label | s indirection [post update] [val indirection] | | clearning.cpp:90:5:90:7 | val indirection | semmle.label | val indirection | | clearning.cpp:91:7:91:12 | * ... | semmle.label | * ... | | clearning.cpp:91:8:91:8 | s indirection [val indirection] | semmle.label | s indirection [val indirection] | +| clearning.cpp:96:18:96:18 | s indirection [post update] [val indirection] | semmle.label | s indirection [post update] [val indirection] | | clearning.cpp:96:20:96:22 | argument_source output argument | semmle.label | argument_source output argument | -| clearning.cpp:96:20:96:22 | s indirection [post update] [val indirection] | semmle.label | s indirection [post update] [val indirection] | +| clearning.cpp:97:2:97:2 | s indirection [post update] [val indirection] | semmle.label | s indirection [post update] [val indirection] | | clearning.cpp:97:2:97:18 | ... = ... indirection | semmle.label | ... = ... indirection | -| clearning.cpp:97:4:97:6 | s indirection [post update] [val indirection] | semmle.label | s indirection [post update] [val indirection] | | clearning.cpp:97:10:97:10 | s indirection [val indirection] | semmle.label | s indirection [val indirection] | | clearning.cpp:97:10:97:18 | ... + ... indirection | semmle.label | ... + ... indirection | | clearning.cpp:97:12:97:14 | val indirection | semmle.label | val indirection | | clearning.cpp:98:7:98:12 | * ... | semmle.label | * ... | | clearning.cpp:98:8:98:8 | s indirection [val indirection] | semmle.label | s indirection [val indirection] | +| clearning.cpp:103:18:103:18 | s indirection [post update] [val indirection] | semmle.label | s indirection [post update] [val indirection] | | clearning.cpp:103:20:103:22 | argument_source output argument | semmle.label | argument_source output argument | -| clearning.cpp:103:20:103:22 | s indirection [post update] [val indirection] | semmle.label | s indirection [post update] [val indirection] | +| clearning.cpp:104:2:104:2 | s indirection [post update] [val indirection] | semmle.label | s indirection [post update] [val indirection] | | clearning.cpp:104:2:104:2 | s indirection [val indirection] | semmle.label | s indirection [val indirection] | | clearning.cpp:104:2:104:8 | ... ++ indirection | semmle.label | ... ++ indirection | | clearning.cpp:104:2:104:8 | ... ++ indirection | semmle.label | ... ++ indirection | -| clearning.cpp:104:4:104:6 | s indirection [post update] [val indirection] | semmle.label | s indirection [post update] [val indirection] | | clearning.cpp:104:4:104:6 | val indirection | semmle.label | val indirection | | clearning.cpp:105:7:105:12 | * ... | semmle.label | * ... | | clearning.cpp:105:8:105:8 | s indirection [val indirection] | semmle.label | s indirection [val indirection] | +| clearning.cpp:110:18:110:18 | s indirection [post update] [val indirection] | semmle.label | s indirection [post update] [val indirection] | | clearning.cpp:110:20:110:22 | argument_source output argument | semmle.label | argument_source output argument | -| clearning.cpp:110:20:110:22 | s indirection [post update] [val indirection] | semmle.label | s indirection [post update] [val indirection] | | clearning.cpp:111:2:111:8 | ++ ... indirection | semmle.label | ++ ... indirection | | clearning.cpp:111:2:111:8 | ++ ... indirection | semmle.label | ++ ... indirection | +| clearning.cpp:111:4:111:4 | s indirection [post update] [val indirection] | semmle.label | s indirection [post update] [val indirection] | | clearning.cpp:111:4:111:4 | s indirection [val indirection] | semmle.label | s indirection [val indirection] | -| clearning.cpp:111:6:111:8 | s indirection [post update] [val indirection] | semmle.label | s indirection [post update] [val indirection] | | clearning.cpp:111:6:111:8 | val indirection | semmle.label | val indirection | | clearning.cpp:112:7:112:12 | * ... | semmle.label | * ... | | clearning.cpp:112:8:112:8 | s indirection [val indirection] | semmle.label | s indirection [val indirection] | +| clearning.cpp:117:18:117:18 | s indirection [post update] [val indirection] | semmle.label | s indirection [post update] [val indirection] | | clearning.cpp:117:20:117:22 | argument_source output argument | semmle.label | argument_source output argument | -| clearning.cpp:117:20:117:22 | s indirection [post update] [val indirection] | semmle.label | s indirection [post update] [val indirection] | +| clearning.cpp:118:2:118:2 | s indirection [post update] [val indirection] | semmle.label | s indirection [post update] [val indirection] | | clearning.cpp:118:2:118:2 | s indirection [val indirection] | semmle.label | s indirection [val indirection] | | clearning.cpp:118:2:118:11 | ... += ... indirection | semmle.label | ... += ... indirection | | clearning.cpp:118:2:118:11 | ... += ... indirection | semmle.label | ... += ... indirection | -| clearning.cpp:118:4:118:6 | s indirection [post update] [val indirection] | semmle.label | s indirection [post update] [val indirection] | | clearning.cpp:118:4:118:6 | val indirection | semmle.label | val indirection | | clearning.cpp:119:7:119:12 | * ... | semmle.label | * ... | | clearning.cpp:119:8:119:8 | s indirection [val indirection] | semmle.label | s indirection [val indirection] | +| clearning.cpp:151:3:151:3 | s indirection [post update] [val] | semmle.label | s indirection [post update] [val] | | clearning.cpp:151:3:151:22 | ... = ... | semmle.label | ... = ... | -| clearning.cpp:151:5:151:7 | s indirection [post update] [val] | semmle.label | s indirection [post update] [val] | | clearning.cpp:151:11:151:20 | call to user_input | semmle.label | call to user_input | | clearning.cpp:152:8:152:8 | s indirection [val] | semmle.label | s indirection [val] | | clearning.cpp:152:10:152:12 | val | semmle.label | val | @@ -1334,28 +1316,20 @@ nodes | complex.cpp:43:10:43:14 | inner indirection [f, b_] | semmle.label | inner indirection [f, b_] | | complex.cpp:43:16:43:16 | f indirection [b_] | semmle.label | f indirection [b_] | | complex.cpp:43:18:43:18 | call to b | semmle.label | call to b | -| complex.cpp:53:6:53:10 | b1 indirection [post update] [inner, f, a_] | semmle.label | b1 indirection [post update] [inner, f, a_] | -| complex.cpp:53:12:53:12 | inner indirection [post update] [f, a_] | semmle.label | inner indirection [post update] [f, a_] | -| complex.cpp:53:12:53:12 | inner indirection [post update] [f, a_] | semmle.label | inner indirection [post update] [f, a_] | -| complex.cpp:53:12:53:12 | inner indirection [post update] [f, a_] | semmle.label | inner indirection [post update] [f, a_] | +| complex.cpp:53:3:53:4 | b1 indirection [post update] [inner, f, a_] | semmle.label | b1 indirection [post update] [inner, f, a_] | +| complex.cpp:53:6:53:10 | inner indirection [post update] [f, a_] | semmle.label | inner indirection [post update] [f, a_] | | complex.cpp:53:12:53:12 | setA output argument [a_] | semmle.label | setA output argument [a_] | | complex.cpp:53:19:53:28 | call to user_input | semmle.label | call to user_input | -| complex.cpp:54:6:54:10 | b2 indirection [post update] [inner, f, b_] | semmle.label | b2 indirection [post update] [inner, f, b_] | -| complex.cpp:54:12:54:12 | inner indirection [post update] [f, b_] | semmle.label | inner indirection [post update] [f, b_] | -| complex.cpp:54:12:54:12 | inner indirection [post update] [f, b_] | semmle.label | inner indirection [post update] [f, b_] | -| complex.cpp:54:12:54:12 | inner indirection [post update] [f, b_] | semmle.label | inner indirection [post update] [f, b_] | +| complex.cpp:54:3:54:4 | b2 indirection [post update] [inner, f, b_] | semmle.label | b2 indirection [post update] [inner, f, b_] | +| complex.cpp:54:6:54:10 | inner indirection [post update] [f, b_] | semmle.label | inner indirection [post update] [f, b_] | | complex.cpp:54:12:54:12 | setB output argument [b_] | semmle.label | setB output argument [b_] | | complex.cpp:54:19:54:28 | call to user_input | semmle.label | call to user_input | -| complex.cpp:55:6:55:10 | b3 indirection [post update] [inner, f, a_] | semmle.label | b3 indirection [post update] [inner, f, a_] | -| complex.cpp:55:12:55:12 | inner indirection [post update] [f, a_] | semmle.label | inner indirection [post update] [f, a_] | -| complex.cpp:55:12:55:12 | inner indirection [post update] [f, a_] | semmle.label | inner indirection [post update] [f, a_] | -| complex.cpp:55:12:55:12 | inner indirection [post update] [f, a_] | semmle.label | inner indirection [post update] [f, a_] | +| complex.cpp:55:3:55:4 | b3 indirection [post update] [inner, f, a_] | semmle.label | b3 indirection [post update] [inner, f, a_] | +| complex.cpp:55:6:55:10 | inner indirection [post update] [f, a_] | semmle.label | inner indirection [post update] [f, a_] | | complex.cpp:55:12:55:12 | setA output argument [a_] | semmle.label | setA output argument [a_] | | complex.cpp:55:19:55:28 | call to user_input | semmle.label | call to user_input | -| complex.cpp:56:6:56:10 | b3 indirection [post update] [inner, f, b_] | semmle.label | b3 indirection [post update] [inner, f, b_] | -| complex.cpp:56:12:56:12 | inner indirection [post update] [f, b_] | semmle.label | inner indirection [post update] [f, b_] | -| complex.cpp:56:12:56:12 | inner indirection [post update] [f, b_] | semmle.label | inner indirection [post update] [f, b_] | -| complex.cpp:56:12:56:12 | inner indirection [post update] [f, b_] | semmle.label | inner indirection [post update] [f, b_] | +| complex.cpp:56:3:56:4 | b3 indirection [post update] [inner, f, b_] | semmle.label | b3 indirection [post update] [inner, f, b_] | +| complex.cpp:56:6:56:10 | inner indirection [post update] [f, b_] | semmle.label | inner indirection [post update] [f, b_] | | complex.cpp:56:12:56:12 | setB output argument [b_] | semmle.label | setB output argument [b_] | | complex.cpp:56:19:56:28 | call to user_input | semmle.label | call to user_input | | complex.cpp:59:7:59:8 | b1 indirection [inner, f, a_] | semmle.label | b1 indirection [inner, f, a_] | @@ -1363,32 +1337,32 @@ nodes | complex.cpp:65:7:65:8 | b3 indirection [inner, f, a_] | semmle.label | b3 indirection [inner, f, a_] | | complex.cpp:65:7:65:8 | b3 indirection [inner, f, b_] | semmle.label | b3 indirection [inner, f, b_] | | conflated.cpp:10:3:10:22 | ... = ... | semmle.label | ... = ... | -| conflated.cpp:10:7:10:7 | ra indirection [post update] [p indirection] | semmle.label | ra indirection [post update] [p indirection] | +| conflated.cpp:10:4:10:5 | ra indirection [post update] [p indirection] | semmle.label | ra indirection [post update] [p indirection] | | conflated.cpp:10:11:10:20 | call to user_input | semmle.label | call to user_input | | conflated.cpp:11:8:11:12 | * ... | semmle.label | * ... | | conflated.cpp:11:9:11:10 | ra indirection [p indirection] | semmle.label | ra indirection [p indirection] | | conflated.cpp:19:19:19:21 | argument_source output argument | semmle.label | argument_source output argument | | conflated.cpp:20:8:20:10 | raw indirection | semmle.label | raw indirection | +| conflated.cpp:29:3:29:4 | pa indirection [post update] [x] | semmle.label | pa indirection [post update] [x] | | conflated.cpp:29:3:29:22 | ... = ... | semmle.label | ... = ... | -| conflated.cpp:29:7:29:7 | pa indirection [post update] [x] | semmle.label | pa indirection [post update] [x] | | conflated.cpp:29:11:29:20 | call to user_input | semmle.label | call to user_input | | conflated.cpp:30:8:30:9 | pa indirection [x] | semmle.label | pa indirection [x] | | conflated.cpp:30:12:30:12 | x | semmle.label | x | +| conflated.cpp:36:3:36:4 | pa indirection [post update] [x] | semmle.label | pa indirection [post update] [x] | | conflated.cpp:36:3:36:22 | ... = ... | semmle.label | ... = ... | -| conflated.cpp:36:7:36:7 | pa indirection [post update] [x] | semmle.label | pa indirection [post update] [x] | | conflated.cpp:36:11:36:20 | call to user_input | semmle.label | call to user_input | | conflated.cpp:37:8:37:9 | pa indirection [x] | semmle.label | pa indirection [x] | | conflated.cpp:37:12:37:12 | x | semmle.label | x | +| conflated.cpp:54:3:54:4 | ll indirection [post update] [next indirection, y] | semmle.label | ll indirection [post update] [next indirection, y] | | conflated.cpp:54:3:54:28 | ... = ... | semmle.label | ... = ... | -| conflated.cpp:54:7:54:10 | ll indirection [post update] [next indirection, y] | semmle.label | ll indirection [post update] [next indirection, y] | -| conflated.cpp:54:13:54:13 | next indirection [post update] [y] | semmle.label | next indirection [post update] [y] | +| conflated.cpp:54:7:54:10 | next indirection [post update] [y] | semmle.label | next indirection [post update] [y] | | conflated.cpp:54:17:54:26 | call to user_input | semmle.label | call to user_input | | conflated.cpp:55:8:55:9 | ll indirection [next indirection, y] | semmle.label | ll indirection [next indirection, y] | | conflated.cpp:55:12:55:15 | next indirection [y] | semmle.label | next indirection [y] | | conflated.cpp:55:18:55:18 | y | semmle.label | y | +| conflated.cpp:60:3:60:4 | ll indirection [post update] [next indirection, y] | semmle.label | ll indirection [post update] [next indirection, y] | | conflated.cpp:60:3:60:28 | ... = ... | semmle.label | ... = ... | -| conflated.cpp:60:7:60:10 | ll indirection [post update] [next indirection, y] | semmle.label | ll indirection [post update] [next indirection, y] | -| conflated.cpp:60:13:60:13 | next indirection [post update] [y] | semmle.label | next indirection [post update] [y] | +| conflated.cpp:60:7:60:10 | next indirection [post update] [y] | semmle.label | next indirection [post update] [y] | | conflated.cpp:60:17:60:26 | call to user_input | semmle.label | call to user_input | | conflated.cpp:61:8:61:9 | ll indirection [next indirection, y] | semmle.label | ll indirection [next indirection, y] | | conflated.cpp:61:12:61:15 | next indirection [y] | semmle.label | next indirection [y] | @@ -1401,11 +1375,11 @@ nodes | constructors.cpp:19:9:19:9 | this indirection [b_] | semmle.label | this indirection [b_] | | constructors.cpp:19:22:19:23 | b_ | semmle.label | b_ | | constructors.cpp:19:22:19:23 | this indirection [b_] | semmle.label | this indirection [b_] | +| constructors.cpp:23:5:23:7 | this indirection [post update] [a_] | semmle.label | this indirection [post update] [a_] | +| constructors.cpp:23:5:23:7 | this indirection [post update] [b_] | semmle.label | this indirection [post update] [b_] | | constructors.cpp:23:13:23:13 | a | semmle.label | a | | constructors.cpp:23:20:23:20 | b | semmle.label | b | -| constructors.cpp:23:25:23:29 | this indirection [post update] [a_] | semmle.label | this indirection [post update] [a_] | | constructors.cpp:23:28:23:28 | a | semmle.label | a | -| constructors.cpp:23:32:23:36 | this indirection [post update] [b_] | semmle.label | this indirection [post update] [b_] | | constructors.cpp:23:35:23:35 | b | semmle.label | b | | constructors.cpp:26:15:26:15 | f indirection [a_] | semmle.label | f indirection [a_] | | constructors.cpp:26:15:26:15 | f indirection [b_] | semmle.label | f indirection [b_] | @@ -1426,17 +1400,17 @@ nodes | constructors.cpp:46:9:46:9 | h indirection [a_] | semmle.label | h indirection [a_] | | constructors.cpp:46:9:46:9 | h indirection [b_] | semmle.label | h indirection [b_] | | qualifiers.cpp:9:21:9:25 | value | semmle.label | value | +| qualifiers.cpp:9:30:9:33 | this indirection [post update] [a] | semmle.label | this indirection [post update] [a] | | qualifiers.cpp:9:30:9:44 | ... = ... | semmle.label | ... = ... | -| qualifiers.cpp:9:36:9:36 | this indirection [post update] [a] | semmle.label | this indirection [post update] [a] | | qualifiers.cpp:12:40:12:44 | value | semmle.label | value | +| qualifiers.cpp:12:49:12:53 | inner indirection [post update] [a] | semmle.label | inner indirection [post update] [a] | | qualifiers.cpp:12:49:12:64 | ... = ... | semmle.label | ... = ... | -| qualifiers.cpp:12:56:12:56 | inner indirection [post update] [a] | semmle.label | inner indirection [post update] [a] | | qualifiers.cpp:13:42:13:46 | value | semmle.label | value | +| qualifiers.cpp:13:51:13:55 | inner indirection [post update] [a] | semmle.label | inner indirection [post update] [a] | | qualifiers.cpp:13:51:13:65 | ... = ... | semmle.label | ... = ... | -| qualifiers.cpp:13:57:13:57 | inner indirection [post update] [a] | semmle.label | inner indirection [post update] [a] | | qualifiers.cpp:22:5:22:9 | getInner output argument [inner indirection, a] | semmle.label | getInner output argument [inner indirection, a] | | qualifiers.cpp:22:5:22:38 | ... = ... | semmle.label | ... = ... | -| qualifiers.cpp:22:23:22:23 | call to getInner indirection [post update] [a] | semmle.label | call to getInner indirection [post update] [a] | +| qualifiers.cpp:22:11:22:18 | call to getInner indirection [post update] [a] | semmle.label | call to getInner indirection [post update] [a] | | qualifiers.cpp:22:27:22:36 | call to user_input | semmle.label | call to user_input | | qualifiers.cpp:23:10:23:14 | outer indirection [inner indirection, a] | semmle.label | outer indirection [inner indirection, a] | | qualifiers.cpp:23:16:23:20 | inner indirection [a] | semmle.label | inner indirection [a] | @@ -1460,24 +1434,24 @@ nodes | qualifiers.cpp:38:16:38:20 | inner indirection [a] | semmle.label | inner indirection [a] | | qualifiers.cpp:38:23:38:23 | a | semmle.label | a | | qualifiers.cpp:42:5:42:40 | ... = ... | semmle.label | ... = ... | +| qualifiers.cpp:42:6:42:22 | * ... indirection [post update] [a] | semmle.label | * ... indirection [post update] [a] | | qualifiers.cpp:42:7:42:11 | getInner output argument [inner indirection, a] | semmle.label | getInner output argument [inner indirection, a] | -| qualifiers.cpp:42:25:42:25 | * ... indirection [post update] [a] | semmle.label | * ... indirection [post update] [a] | | qualifiers.cpp:42:29:42:38 | call to user_input | semmle.label | call to user_input | | qualifiers.cpp:43:10:43:14 | outer indirection [inner indirection, a] | semmle.label | outer indirection [inner indirection, a] | | qualifiers.cpp:43:16:43:20 | inner indirection [a] | semmle.label | inner indirection [a] | | qualifiers.cpp:43:23:43:23 | a | semmle.label | a | | qualifiers.cpp:47:5:47:42 | ... = ... | semmle.label | ... = ... | | qualifiers.cpp:47:6:47:11 | getInner output argument [inner indirection, a] | semmle.label | getInner output argument [inner indirection, a] | -| qualifiers.cpp:47:27:47:27 | call to getInner indirection [post update] [a] | semmle.label | call to getInner indirection [post update] [a] | +| qualifiers.cpp:47:15:47:22 | call to getInner indirection [post update] [a] | semmle.label | call to getInner indirection [post update] [a] | | qualifiers.cpp:47:31:47:40 | call to user_input | semmle.label | call to user_input | | qualifiers.cpp:48:10:48:14 | outer indirection [inner indirection, a] | semmle.label | outer indirection [inner indirection, a] | | qualifiers.cpp:48:16:48:20 | inner indirection [a] | semmle.label | inner indirection [a] | | qualifiers.cpp:48:23:48:23 | a | semmle.label | a | +| realistic.cpp:53:9:53:11 | foo indirection [post update] [bar, baz indirection, userInput, bufferLen] | semmle.label | foo indirection [post update] [bar, baz indirection, userInput, bufferLen] | +| realistic.cpp:53:9:53:18 | access to array indirection [post update] [baz indirection, userInput, bufferLen] | semmle.label | access to array indirection [post update] [baz indirection, userInput, bufferLen] | | realistic.cpp:53:9:53:66 | ... = ... | semmle.label | ... = ... | -| realistic.cpp:53:13:53:15 | foo indirection [post update] [bar, baz indirection, userInput, bufferLen] | semmle.label | foo indirection [post update] [bar, baz indirection, userInput, bufferLen] | -| realistic.cpp:53:20:53:22 | access to array indirection [post update] [baz indirection, userInput, bufferLen] | semmle.label | access to array indirection [post update] [baz indirection, userInput, bufferLen] | -| realistic.cpp:53:25:53:33 | baz indirection [post update] [userInput, bufferLen] | semmle.label | baz indirection [post update] [userInput, bufferLen] | -| realistic.cpp:53:35:53:43 | userInput indirection [post update] [bufferLen] | semmle.label | userInput indirection [post update] [bufferLen] | +| realistic.cpp:53:20:53:22 | baz indirection [post update] [userInput, bufferLen] | semmle.label | baz indirection [post update] [userInput, bufferLen] | +| realistic.cpp:53:25:53:33 | userInput indirection [post update] [bufferLen] | semmle.label | userInput indirection [post update] [bufferLen] | | realistic.cpp:53:47:53:66 | call to user_input | semmle.label | call to user_input | | realistic.cpp:61:14:61:55 | bufferLen | semmle.label | bufferLen | | realistic.cpp:61:21:61:23 | foo indirection [bar, baz indirection, userInput, bufferLen] | semmle.label | foo indirection [bar, baz indirection, userInput, bufferLen] | @@ -1516,8 +1490,8 @@ nodes | simple.cpp:48:9:48:9 | g indirection [b_] | semmle.label | g indirection [b_] | | simple.cpp:51:9:51:9 | h indirection [a_] | semmle.label | h indirection [a_] | | simple.cpp:51:9:51:9 | h indirection [b_] | semmle.label | h indirection [b_] | +| simple.cpp:65:5:65:5 | a indirection [post update] [i] | semmle.label | a indirection [post update] [i] | | simple.cpp:65:5:65:22 | ... = ... | semmle.label | ... = ... | -| simple.cpp:65:7:65:7 | a indirection [post update] [i] | semmle.label | a indirection [post update] [i] | | simple.cpp:65:11:65:20 | call to user_input | semmle.label | call to user_input | | simple.cpp:67:10:67:11 | a2 indirection [i] | semmle.label | a2 indirection [i] | | simple.cpp:67:13:67:13 | i | semmle.label | i | @@ -1526,14 +1500,14 @@ nodes | simple.cpp:79:16:79:17 | f2 indirection [f1] | semmle.label | f2 indirection [f1] | | simple.cpp:79:16:79:17 | this indirection [f2, f1] | semmle.label | this indirection [f2, f1] | | simple.cpp:79:19:79:20 | f1 | semmle.label | f1 | +| simple.cpp:83:9:83:10 | f2 indirection [post update] [f1] | semmle.label | f2 indirection [post update] [f1] | | simple.cpp:83:9:83:10 | this indirection [post update] [f2, f1] | semmle.label | this indirection [post update] [f2, f1] | | simple.cpp:83:9:83:28 | ... = ... | semmle.label | ... = ... | -| simple.cpp:83:12:83:13 | f2 indirection [post update] [f1] | semmle.label | f2 indirection [post update] [f1] | | simple.cpp:83:17:83:26 | call to user_input | semmle.label | call to user_input | | simple.cpp:84:14:84:20 | call to getf2f1 | semmle.label | call to getf2f1 | | simple.cpp:84:14:84:20 | this indirection [f2, f1] | semmle.label | this indirection [f2, f1] | +| simple.cpp:92:5:92:5 | a indirection [post update] [i] | semmle.label | a indirection [post update] [i] | | simple.cpp:92:5:92:22 | ... = ... | semmle.label | ... = ... | -| simple.cpp:92:7:92:7 | a indirection [post update] [i] | semmle.label | a indirection [post update] [i] | | simple.cpp:92:11:92:20 | call to user_input | semmle.label | call to user_input | | simple.cpp:94:10:94:11 | a2 indirection [i] | semmle.label | a2 indirection [i] | | simple.cpp:94:13:94:13 | i | semmle.label | i | @@ -1545,17 +1519,16 @@ nodes | struct_init.c:15:8:15:9 | ab indirection [a] | semmle.label | ab indirection [a] | | struct_init.c:15:12:15:12 | a | semmle.label | a | | struct_init.c:20:13:20:14 | definition of ab indirection [a] | semmle.label | definition of ab indirection [a] | -| struct_init.c:20:17:20:36 | definition of ab indirection [post update] [a] | semmle.label | definition of ab indirection [post update] [a] | +| struct_init.c:20:13:20:14 | definition of ab indirection [post update] [a] | semmle.label | definition of ab indirection [post update] [a] | | struct_init.c:20:20:20:29 | call to user_input | semmle.label | call to user_input | | struct_init.c:20:20:20:29 | call to user_input | semmle.label | call to user_input | | struct_init.c:22:8:22:9 | ab indirection [a] | semmle.label | ab indirection [a] | | struct_init.c:22:11:22:11 | a | semmle.label | a | | struct_init.c:24:10:24:12 | & ... indirection [a] | semmle.label | & ... indirection [a] | | struct_init.c:26:16:26:20 | definition of outer indirection [nestedAB, a] | semmle.label | definition of outer indirection [nestedAB, a] | -| struct_init.c:26:23:29:3 | definition of outer indirection [post update] [nestedAB, a] | semmle.label | definition of outer indirection [post update] [nestedAB, a] | -| struct_init.c:26:23:29:3 | definition of outer indirection [post update] [nestedAB, a] | semmle.label | definition of outer indirection [post update] [nestedAB, a] | -| struct_init.c:26:23:29:3 | definition of outer indirection [post update] [pointerAB indirection, a] | semmle.label | definition of outer indirection [post update] [pointerAB indirection, a] | -| struct_init.c:27:5:27:23 | {...} indirection [post update] [a] | semmle.label | {...} indirection [post update] [a] | +| struct_init.c:26:16:26:20 | definition of outer indirection [post update] [nestedAB, a] | semmle.label | definition of outer indirection [post update] [nestedAB, a] | +| struct_init.c:26:16:26:20 | definition of outer indirection [post update] [pointerAB indirection, a] | semmle.label | definition of outer indirection [post update] [pointerAB indirection, a] | +| struct_init.c:26:23:29:3 | {...} indirection [post update] [a] | semmle.label | {...} indirection [post update] [a] | | struct_init.c:27:7:27:16 | call to user_input | semmle.label | call to user_input | | struct_init.c:27:7:27:16 | call to user_input | semmle.label | call to user_input | | struct_init.c:28:5:28:7 | & ... indirection [a] | semmle.label | & ... indirection [a] | @@ -1568,48 +1541,48 @@ nodes | struct_init.c:36:10:36:24 | & ... indirection [a] | semmle.label | & ... indirection [a] | | struct_init.c:36:11:36:15 | outer indirection [nestedAB, a] | semmle.label | outer indirection [nestedAB, a] | | struct_init.c:40:13:40:14 | definition of ab indirection [a] | semmle.label | definition of ab indirection [a] | -| struct_init.c:40:17:40:36 | definition of ab indirection [post update] [a] | semmle.label | definition of ab indirection [post update] [a] | +| struct_init.c:40:13:40:14 | definition of ab indirection [post update] [a] | semmle.label | definition of ab indirection [post update] [a] | | struct_init.c:40:20:40:29 | call to user_input | semmle.label | call to user_input | | struct_init.c:40:20:40:29 | call to user_input | semmle.label | call to user_input | -| struct_init.c:41:23:44:3 | definition of outer indirection [post update] [pointerAB indirection, a] | semmle.label | definition of outer indirection [post update] [pointerAB indirection, a] | +| struct_init.c:41:16:41:20 | definition of outer indirection [post update] [pointerAB indirection, a] | semmle.label | definition of outer indirection [post update] [pointerAB indirection, a] | | struct_init.c:43:5:43:7 | & ... indirection [a] | semmle.label | & ... indirection [a] | | struct_init.c:46:10:46:14 | outer indirection [pointerAB indirection, a] | semmle.label | outer indirection [pointerAB indirection, a] | | struct_init.c:46:16:46:24 | pointerAB indirection [a] | semmle.label | pointerAB indirection [a] | subpaths -| A.cpp:31:20:31:20 | c | A.cpp:23:10:23:10 | c | A.cpp:25:13:25:13 | this indirection [post update] [c] | A.cpp:31:14:31:21 | call to B [c] | +| A.cpp:31:20:31:20 | c | A.cpp:23:10:23:10 | c | A.cpp:25:7:25:10 | this indirection [post update] [c] | A.cpp:31:14:31:21 | call to B [c] | | A.cpp:48:20:48:20 | c | A.cpp:29:23:29:23 | c | A.cpp:29:15:29:18 | make indirection [c] | A.cpp:48:12:48:18 | call to make indirection [c] | -| A.cpp:55:12:55:19 | new | A.cpp:27:17:27:17 | c | A.cpp:27:28:27:28 | this indirection [post update] [c] | A.cpp:55:5:55:5 | set output argument [c] | +| A.cpp:55:12:55:19 | new | A.cpp:27:17:27:17 | c | A.cpp:27:22:27:25 | this indirection [post update] [c] | A.cpp:55:5:55:5 | set output argument [c] | | A.cpp:56:10:56:10 | b indirection [c] | A.cpp:28:8:28:10 | this indirection [c] | A.cpp:28:8:28:10 | get indirection | A.cpp:56:10:56:17 | call to get | | A.cpp:57:11:57:24 | new indirection [c] | A.cpp:28:8:28:10 | this indirection [c] | A.cpp:28:8:28:10 | get indirection | A.cpp:57:10:57:32 | call to get | -| A.cpp:57:17:57:23 | new | A.cpp:23:10:23:10 | c | A.cpp:25:13:25:13 | this indirection [post update] [c] | A.cpp:57:11:57:24 | call to B [c] | +| A.cpp:57:17:57:23 | new | A.cpp:23:10:23:10 | c | A.cpp:25:7:25:10 | this indirection [post update] [c] | A.cpp:57:11:57:24 | call to B [c] | | A.cpp:64:21:64:28 | new | A.cpp:85:26:85:26 | c | A.cpp:85:9:85:14 | setOnB indirection [c] | A.cpp:64:10:64:15 | call to setOnB indirection [c] | | A.cpp:73:25:73:32 | new | A.cpp:78:27:78:27 | c | A.cpp:78:6:78:15 | setOnBWrap indirection [c] | A.cpp:73:10:73:19 | call to setOnBWrap indirection [c] | | A.cpp:81:21:81:21 | c | A.cpp:85:26:85:26 | c | A.cpp:85:9:85:14 | setOnB indirection [c] | A.cpp:81:10:81:15 | call to setOnB indirection [c] | -| A.cpp:90:15:90:15 | c | A.cpp:27:17:27:17 | c | A.cpp:27:28:27:28 | this indirection [post update] [c] | A.cpp:90:7:90:8 | set output argument [c] | -| A.cpp:126:12:126:18 | new | A.cpp:27:17:27:17 | c | A.cpp:27:28:27:28 | this indirection [post update] [c] | A.cpp:126:5:126:5 | set output argument [c] | -| A.cpp:151:18:151:18 | b | A.cpp:140:13:140:13 | b | A.cpp:143:13:143:13 | this indirection [post update] [b] | A.cpp:151:12:151:24 | call to D [b] | +| A.cpp:90:15:90:15 | c | A.cpp:27:17:27:17 | c | A.cpp:27:22:27:25 | this indirection [post update] [c] | A.cpp:90:7:90:8 | set output argument [c] | +| A.cpp:126:12:126:18 | new | A.cpp:27:17:27:17 | c | A.cpp:27:22:27:25 | this indirection [post update] [c] | A.cpp:126:5:126:5 | set output argument [c] | +| A.cpp:151:18:151:18 | b | A.cpp:140:13:140:13 | b | A.cpp:143:7:143:10 | this indirection [post update] [b] | A.cpp:151:12:151:24 | call to D [b] | | A.cpp:160:29:160:29 | b | A.cpp:181:15:181:21 | newHead | A.cpp:183:7:183:10 | this indirection [post update] [head] | A.cpp:160:18:160:60 | call to MyList [head] | -| A.cpp:161:38:161:39 | l1 indirection [head] | A.cpp:181:32:181:35 | next indirection [head] | A.cpp:184:13:184:16 | this indirection [post update] [next indirection, head] | A.cpp:161:18:161:40 | call to MyList [next indirection, head] | -| A.cpp:162:38:162:39 | l2 indirection [next indirection, head] | A.cpp:181:32:181:35 | next indirection [next indirection, head] | A.cpp:184:13:184:16 | this indirection [post update] [next indirection, next indirection, head] | A.cpp:162:18:162:40 | call to MyList [next indirection, next indirection, head] | -| B.cpp:7:25:7:25 | e | B.cpp:33:16:33:17 | e1 | B.cpp:35:13:35:17 | this indirection [post update] [elem1] | B.cpp:7:16:7:35 | call to Box1 [elem1] | -| B.cpp:8:25:8:26 | b1 indirection [elem1] | B.cpp:44:16:44:17 | b1 indirection [elem1] | B.cpp:46:13:46:16 | this indirection [post update] [box1 indirection, elem1] | B.cpp:8:16:8:27 | call to Box2 [box1 indirection, elem1] | -| B.cpp:16:37:16:37 | e | B.cpp:33:26:33:27 | e2 | B.cpp:36:13:36:17 | this indirection [post update] [elem2] | B.cpp:16:16:16:38 | call to Box1 [elem2] | -| B.cpp:17:25:17:26 | b1 indirection [elem2] | B.cpp:44:16:44:17 | b1 indirection [elem2] | B.cpp:46:13:46:16 | this indirection [post update] [box1 indirection, elem2] | B.cpp:17:16:17:27 | call to Box2 [box1 indirection, elem2] | +| A.cpp:161:38:161:39 | l1 indirection [head] | A.cpp:181:32:181:35 | next indirection [head] | A.cpp:184:7:184:10 | this indirection [post update] [next indirection, head] | A.cpp:161:18:161:40 | call to MyList [next indirection, head] | +| A.cpp:162:38:162:39 | l2 indirection [next indirection, head] | A.cpp:181:32:181:35 | next indirection [next indirection, head] | A.cpp:184:7:184:10 | this indirection [post update] [next indirection, next indirection, head] | A.cpp:162:18:162:40 | call to MyList [next indirection, next indirection, head] | +| B.cpp:7:25:7:25 | e | B.cpp:33:16:33:17 | e1 | B.cpp:35:7:35:10 | this indirection [post update] [elem1] | B.cpp:7:16:7:35 | call to Box1 [elem1] | +| B.cpp:8:25:8:26 | b1 indirection [elem1] | B.cpp:44:16:44:17 | b1 indirection [elem1] | B.cpp:46:7:46:10 | this indirection [post update] [box1 indirection, elem1] | B.cpp:8:16:8:27 | call to Box2 [box1 indirection, elem1] | +| B.cpp:16:37:16:37 | e | B.cpp:33:26:33:27 | e2 | B.cpp:36:7:36:10 | this indirection [post update] [elem2] | B.cpp:16:16:16:38 | call to Box1 [elem2] | +| B.cpp:17:25:17:26 | b1 indirection [elem2] | B.cpp:44:16:44:17 | b1 indirection [elem2] | B.cpp:46:7:46:10 | this indirection [post update] [box1 indirection, elem2] | B.cpp:17:16:17:27 | call to Box2 [box1 indirection, elem2] | | D.cpp:22:10:22:11 | b2 indirection [box indirection, elem] | D.cpp:17:11:17:17 | this indirection [box indirection, elem] | D.cpp:17:11:17:17 | getBox1 indirection [elem] | D.cpp:22:14:22:20 | call to getBox1 indirection [elem] | | D.cpp:22:14:22:20 | call to getBox1 indirection [elem] | D.cpp:10:11:10:17 | this indirection [elem] | D.cpp:10:11:10:17 | getElem indirection | D.cpp:22:10:22:33 | call to getElem | | D.cpp:37:21:37:21 | e | D.cpp:11:24:11:24 | e | D.cpp:11:29:11:32 | this indirection [post update] [elem] | D.cpp:37:8:37:10 | setElem output argument [elem] | | D.cpp:51:27:51:27 | e | D.cpp:11:24:11:24 | e | D.cpp:11:29:11:32 | this indirection [post update] [elem] | D.cpp:51:8:51:14 | setElem output argument [elem] | -| by_reference.cpp:20:23:20:27 | value | by_reference.cpp:15:26:15:30 | value | by_reference.cpp:16:11:16:11 | this indirection [post update] [a] | by_reference.cpp:20:5:20:8 | setDirectly output argument [a] | -| by_reference.cpp:24:25:24:29 | value | by_reference.cpp:11:48:11:52 | value | by_reference.cpp:12:8:12:8 | s indirection [post update] [a] | by_reference.cpp:24:19:24:22 | nonMemberSetA output argument [a] | +| by_reference.cpp:20:23:20:27 | value | by_reference.cpp:15:26:15:30 | value | by_reference.cpp:16:5:16:8 | this indirection [post update] [a] | by_reference.cpp:20:5:20:8 | setDirectly output argument [a] | +| by_reference.cpp:24:25:24:29 | value | by_reference.cpp:11:48:11:52 | value | by_reference.cpp:12:5:12:5 | s indirection [post update] [a] | by_reference.cpp:24:19:24:22 | nonMemberSetA output argument [a] | | by_reference.cpp:40:12:40:15 | this indirection [a] | by_reference.cpp:35:9:35:19 | this indirection [a] | by_reference.cpp:35:9:35:19 | getDirectly indirection | by_reference.cpp:40:18:40:28 | call to getDirectly | | by_reference.cpp:44:26:44:29 | this indirection [a] | by_reference.cpp:31:46:31:46 | s indirection [a] | by_reference.cpp:31:16:31:28 | nonMemberGetA indirection | by_reference.cpp:44:12:44:24 | call to nonMemberGetA | -| by_reference.cpp:50:17:50:26 | call to user_input | by_reference.cpp:15:26:15:30 | value | by_reference.cpp:16:11:16:11 | this indirection [post update] [a] | by_reference.cpp:50:3:50:3 | setDirectly output argument [a] | +| by_reference.cpp:50:17:50:26 | call to user_input | by_reference.cpp:15:26:15:30 | value | by_reference.cpp:16:5:16:8 | this indirection [post update] [a] | by_reference.cpp:50:3:50:3 | setDirectly output argument [a] | | by_reference.cpp:51:8:51:8 | s indirection [a] | by_reference.cpp:35:9:35:19 | this indirection [a] | by_reference.cpp:35:9:35:19 | getDirectly indirection | by_reference.cpp:51:10:51:20 | call to getDirectly | | by_reference.cpp:56:19:56:28 | call to user_input | by_reference.cpp:19:28:19:32 | value | by_reference.cpp:20:5:20:8 | setDirectly output argument [a] | by_reference.cpp:56:3:56:3 | setIndirectly output argument [a] | | by_reference.cpp:57:8:57:8 | s indirection [a] | by_reference.cpp:39:9:39:21 | this indirection [a] | by_reference.cpp:39:9:39:21 | getIndirectly indirection | by_reference.cpp:57:10:57:22 | call to getIndirectly | | by_reference.cpp:62:25:62:34 | call to user_input | by_reference.cpp:23:34:23:38 | value | by_reference.cpp:24:19:24:22 | nonMemberSetA output argument [a] | by_reference.cpp:62:3:62:3 | setThroughNonMember output argument [a] | | by_reference.cpp:63:8:63:8 | s indirection [a] | by_reference.cpp:43:9:43:27 | this indirection [a] | by_reference.cpp:43:9:43:27 | getThroughNonMember indirection | by_reference.cpp:63:10:63:28 | call to getThroughNonMember | -| by_reference.cpp:68:21:68:30 | call to user_input | by_reference.cpp:11:48:11:52 | value | by_reference.cpp:12:8:12:8 | s indirection [post update] [a] | by_reference.cpp:68:17:68:18 | nonMemberSetA output argument [a] | +| by_reference.cpp:68:21:68:30 | call to user_input | by_reference.cpp:11:48:11:52 | value | by_reference.cpp:12:5:12:5 | s indirection [post update] [a] | by_reference.cpp:68:17:68:18 | nonMemberSetA output argument [a] | | by_reference.cpp:69:22:69:23 | & ... indirection [a] | by_reference.cpp:31:46:31:46 | s indirection [a] | by_reference.cpp:31:16:31:28 | nonMemberGetA indirection | by_reference.cpp:69:8:69:20 | call to nonMemberGetA | | complex.cpp:42:16:42:16 | f indirection [a_] | complex.cpp:9:7:9:7 | this indirection [a_] | complex.cpp:9:7:9:7 | a indirection | complex.cpp:42:18:42:18 | call to a | | complex.cpp:43:16:43:16 | f indirection [b_] | complex.cpp:10:7:10:7 | this indirection [b_] | complex.cpp:10:7:10:7 | b indirection | complex.cpp:43:18:43:18 | call to b | @@ -1619,13 +1592,13 @@ subpaths | complex.cpp:56:19:56:28 | call to user_input | complex.cpp:12:17:12:17 | b | complex.cpp:12:22:12:23 | this indirection [post update] [b_] | complex.cpp:56:12:56:12 | setB output argument [b_] | | constructors.cpp:28:10:28:10 | f indirection [a_] | constructors.cpp:18:9:18:9 | this indirection [a_] | constructors.cpp:18:9:18:9 | a indirection | constructors.cpp:28:12:28:12 | call to a | | constructors.cpp:29:10:29:10 | f indirection [b_] | constructors.cpp:19:9:19:9 | this indirection [b_] | constructors.cpp:19:9:19:9 | b indirection | constructors.cpp:29:12:29:12 | call to b | -| constructors.cpp:34:11:34:20 | call to user_input | constructors.cpp:23:13:23:13 | a | constructors.cpp:23:25:23:29 | this indirection [post update] [a_] | constructors.cpp:34:9:34:9 | call to Foo [a_] | -| constructors.cpp:35:14:35:23 | call to user_input | constructors.cpp:23:20:23:20 | b | constructors.cpp:23:32:23:36 | this indirection [post update] [b_] | constructors.cpp:35:9:35:9 | call to Foo [b_] | -| constructors.cpp:36:11:36:20 | call to user_input | constructors.cpp:23:13:23:13 | a | constructors.cpp:23:25:23:29 | this indirection [post update] [a_] | constructors.cpp:36:9:36:9 | call to Foo [a_] | -| constructors.cpp:36:25:36:34 | call to user_input | constructors.cpp:23:20:23:20 | b | constructors.cpp:23:32:23:36 | this indirection [post update] [b_] | constructors.cpp:36:9:36:9 | call to Foo [b_] | -| qualifiers.cpp:27:28:27:37 | call to user_input | qualifiers.cpp:9:21:9:25 | value | qualifiers.cpp:9:36:9:36 | this indirection [post update] [a] | qualifiers.cpp:27:11:27:18 | setA output argument [a] | -| qualifiers.cpp:32:35:32:44 | call to user_input | qualifiers.cpp:12:40:12:44 | value | qualifiers.cpp:12:56:12:56 | inner indirection [post update] [a] | qualifiers.cpp:32:23:32:30 | pointerSetA output argument [a] | -| qualifiers.cpp:37:38:37:47 | call to user_input | qualifiers.cpp:13:42:13:46 | value | qualifiers.cpp:13:57:13:57 | inner indirection [post update] [a] | qualifiers.cpp:37:19:37:35 | referenceSetA output argument [a] | +| constructors.cpp:34:11:34:20 | call to user_input | constructors.cpp:23:13:23:13 | a | constructors.cpp:23:5:23:7 | this indirection [post update] [a_] | constructors.cpp:34:9:34:9 | call to Foo [a_] | +| constructors.cpp:35:14:35:23 | call to user_input | constructors.cpp:23:20:23:20 | b | constructors.cpp:23:5:23:7 | this indirection [post update] [b_] | constructors.cpp:35:9:35:9 | call to Foo [b_] | +| constructors.cpp:36:11:36:20 | call to user_input | constructors.cpp:23:13:23:13 | a | constructors.cpp:23:5:23:7 | this indirection [post update] [a_] | constructors.cpp:36:9:36:9 | call to Foo [a_] | +| constructors.cpp:36:25:36:34 | call to user_input | constructors.cpp:23:20:23:20 | b | constructors.cpp:23:5:23:7 | this indirection [post update] [b_] | constructors.cpp:36:9:36:9 | call to Foo [b_] | +| qualifiers.cpp:27:28:27:37 | call to user_input | qualifiers.cpp:9:21:9:25 | value | qualifiers.cpp:9:30:9:33 | this indirection [post update] [a] | qualifiers.cpp:27:11:27:18 | setA output argument [a] | +| qualifiers.cpp:32:35:32:44 | call to user_input | qualifiers.cpp:12:40:12:44 | value | qualifiers.cpp:12:49:12:53 | inner indirection [post update] [a] | qualifiers.cpp:32:23:32:30 | pointerSetA output argument [a] | +| qualifiers.cpp:37:38:37:47 | call to user_input | qualifiers.cpp:13:42:13:46 | value | qualifiers.cpp:13:51:13:55 | inner indirection [post update] [a] | qualifiers.cpp:37:19:37:35 | referenceSetA output argument [a] | | simple.cpp:28:10:28:10 | f indirection [a_] | simple.cpp:18:9:18:9 | this indirection [a_] | simple.cpp:18:9:18:9 | a indirection | simple.cpp:28:12:28:12 | call to a | | simple.cpp:29:10:29:10 | f indirection [b_] | simple.cpp:19:9:19:9 | this indirection [b_] | simple.cpp:19:9:19:9 | b indirection | simple.cpp:29:12:29:12 | call to b | | simple.cpp:39:12:39:21 | call to user_input | simple.cpp:20:19:20:19 | a | simple.cpp:20:24:20:25 | this indirection [post update] [a_] | simple.cpp:39:5:39:5 | setA output argument [a_] | diff --git a/cpp/ql/test/library-tests/dataflow/fields/partial-definition-diff.expected b/cpp/ql/test/library-tests/dataflow/fields/partial-definition-diff.expected index 131a8cf05c67..4c85e26fc79d 100644 --- a/cpp/ql/test/library-tests/dataflow/fields/partial-definition-diff.expected +++ b/cpp/ql/test/library-tests/dataflow/fields/partial-definition-diff.expected @@ -1,7 +1,7 @@ WARNING: Module DataFlow has been deprecated and may be removed in future (partial-definition-diff.ql:7,8-51) | A.cpp:25:13:25:13 | c | AST only | | A.cpp:27:28:27:28 | c | AST only | -| A.cpp:28:29:28:29 | this | IR only | +| A.cpp:28:23:28:26 | this | IR only | | A.cpp:31:14:31:21 | new | IR only | | A.cpp:40:15:40:21 | 0 | IR only | | A.cpp:40:15:40:21 | 0 | IR only | @@ -45,7 +45,7 @@ WARNING: Module DataFlow has been deprecated and may be removed in future (parti | A.cpp:161:29:161:35 | 0 | IR only | | A.cpp:162:18:162:40 | new | IR only | | A.cpp:162:29:162:35 | 0 | IR only | -| A.cpp:167:47:167:50 | l | IR only | +| A.cpp:167:44:167:44 | l | IR only | | A.cpp:183:7:183:10 | head | AST only | | A.cpp:184:13:184:16 | next | AST only | | B.cpp:7:16:7:35 | new | IR only | @@ -93,54 +93,54 @@ WARNING: Module DataFlow has been deprecated and may be removed in future (parti | aliasing.cpp:9:6:9:7 | m1 | AST only | | aliasing.cpp:13:5:13:6 | m1 | AST only | | aliasing.cpp:17:5:17:6 | m1 | AST only | -| aliasing.cpp:29:11:29:12 | s1 | IR only | -| aliasing.cpp:30:11:30:12 | s2 | IR only | -| aliasing.cpp:31:11:31:12 | s3 | IR only | +| aliasing.cpp:29:8:29:9 | s1 | IR only | +| aliasing.cpp:30:8:30:9 | s2 | IR only | +| aliasing.cpp:31:8:31:9 | s3 | IR only | | aliasing.cpp:37:8:37:9 | m1 | AST only | -| aliasing.cpp:38:11:38:12 | s1 | IR only | +| aliasing.cpp:38:8:38:9 | s1 | IR only | | aliasing.cpp:42:6:42:7 | m1 | AST only | -| aliasing.cpp:43:13:43:14 | ref2 | IR only | +| aliasing.cpp:43:8:43:11 | ref2 | IR only | | aliasing.cpp:49:9:49:10 | m1 | AST only | -| aliasing.cpp:50:11:50:12 | s1 | IR only | +| aliasing.cpp:50:8:50:9 | s1 | IR only | | aliasing.cpp:54:6:54:7 | m1 | AST only | -| aliasing.cpp:55:14:55:15 | copy2 | IR only | +| aliasing.cpp:55:8:55:12 | copy2 | IR only | | aliasing.cpp:60:6:60:7 | m1 | AST only | -| aliasing.cpp:62:14:62:15 | copy2 | IR only | -| aliasing.cpp:71:11:71:11 | w | IR only | +| aliasing.cpp:62:8:62:12 | copy2 | IR only | +| aliasing.cpp:71:9:71:9 | w | IR only | | aliasing.cpp:72:5:72:6 | m1 | AST only | -| aliasing.cpp:73:10:73:10 | w | IR only | -| aliasing.cpp:73:12:73:13 | s | IR only | -| aliasing.cpp:78:13:78:13 | w | IR only | +| aliasing.cpp:73:8:73:8 | w | IR only | +| aliasing.cpp:73:10:73:10 | s | IR only | +| aliasing.cpp:78:11:78:11 | w | IR only | | aliasing.cpp:79:6:79:7 | m1 | AST only | -| aliasing.cpp:80:10:80:10 | w | IR only | -| aliasing.cpp:80:12:80:13 | s | IR only | -| aliasing.cpp:85:12:85:12 | w | IR only | +| aliasing.cpp:80:8:80:8 | w | IR only | +| aliasing.cpp:80:10:80:10 | s | IR only | +| aliasing.cpp:85:10:85:10 | w | IR only | | aliasing.cpp:86:5:86:6 | m1 | AST only | -| aliasing.cpp:87:10:87:10 | w | IR only | -| aliasing.cpp:87:12:87:13 | s | IR only | +| aliasing.cpp:87:8:87:8 | w | IR only | +| aliasing.cpp:87:10:87:10 | s | IR only | | aliasing.cpp:92:7:92:8 | m1 | AST only | -| aliasing.cpp:93:10:93:10 | w | IR only | -| aliasing.cpp:93:12:93:13 | s | IR only | +| aliasing.cpp:93:8:93:8 | w | IR only | +| aliasing.cpp:93:10:93:10 | s | IR only | | aliasing.cpp:98:5:98:6 | m1 | AST only | -| aliasing.cpp:101:21:101:22 | s_copy | IR only | +| aliasing.cpp:101:14:101:19 | s_copy | IR only | | aliasing.cpp:106:3:106:5 | * ... | AST only | -| aliasing.cpp:112:10:112:11 | s | IR only | -| aliasing.cpp:143:10:143:13 | s | IR only | -| aliasing.cpp:148:13:148:14 | access to array | IR only | -| aliasing.cpp:159:11:159:14 | s | IR only | -| aliasing.cpp:165:10:165:13 | s | IR only | -| aliasing.cpp:176:11:176:11 | s2 | IR only | -| aliasing.cpp:176:13:176:14 | s | IR only | -| aliasing.cpp:182:11:182:11 | s2 | IR only | -| aliasing.cpp:182:13:182:14 | s | IR only | -| aliasing.cpp:189:13:189:13 | s2_2 | IR only | -| aliasing.cpp:189:15:189:16 | s | IR only | -| aliasing.cpp:196:13:196:13 | s2_2 | IR only | -| aliasing.cpp:196:15:196:16 | s | IR only | -| aliasing.cpp:201:13:201:13 | ps2 | IR only | -| aliasing.cpp:201:15:201:16 | s | IR only | -| aliasing.cpp:206:13:206:13 | ps2 | IR only | -| aliasing.cpp:206:15:206:16 | s | IR only | +| aliasing.cpp:112:8:112:8 | s | IR only | +| aliasing.cpp:143:8:143:8 | s | IR only | +| aliasing.cpp:148:8:148:11 | access to array | IR only | +| aliasing.cpp:159:9:159:9 | s | IR only | +| aliasing.cpp:165:8:165:8 | s | IR only | +| aliasing.cpp:176:8:176:9 | s2 | IR only | +| aliasing.cpp:176:11:176:11 | s | IR only | +| aliasing.cpp:182:8:182:9 | s2 | IR only | +| aliasing.cpp:182:11:182:11 | s | IR only | +| aliasing.cpp:189:8:189:11 | s2_2 | IR only | +| aliasing.cpp:189:13:189:13 | s | IR only | +| aliasing.cpp:196:8:196:11 | s2_2 | IR only | +| aliasing.cpp:196:13:196:13 | s | IR only | +| aliasing.cpp:201:8:201:10 | ps2 | IR only | +| aliasing.cpp:201:13:201:13 | s | IR only | +| aliasing.cpp:206:8:206:10 | ps2 | IR only | +| aliasing.cpp:206:13:206:13 | s | IR only | | arrays.cpp:6:3:6:8 | access to array | AST only | | arrays.cpp:7:8:7:13 | access to array | IR only | | arrays.cpp:7:8:7:13 | access to array | IR only | @@ -160,53 +160,53 @@ WARNING: Module DataFlow has been deprecated and may be removed in future (parti | arrays.cpp:48:22:48:25 | data | AST only | | by_reference.cpp:12:8:12:8 | a | AST only | | by_reference.cpp:16:11:16:11 | a | AST only | -| by_reference.cpp:32:15:32:15 | s | IR only | -| by_reference.cpp:36:18:36:18 | this | IR only | +| by_reference.cpp:32:12:32:12 | s | IR only | +| by_reference.cpp:36:12:36:15 | this | IR only | | by_reference.cpp:44:26:44:29 | this | IR only | | by_reference.cpp:69:22:69:23 | & ... | IR only | | by_reference.cpp:84:10:84:10 | a | AST only | | by_reference.cpp:88:9:88:9 | a | AST only | | by_reference.cpp:92:3:92:5 | * ... | AST only | | by_reference.cpp:96:3:96:4 | pa | AST only | -| clearning.cpp:18:7:18:7 | s | IR only | +| clearning.cpp:18:5:18:5 | s | IR only | | clearning.cpp:19:3:19:6 | * ... | AST only | -| clearning.cpp:20:12:20:12 | s | IR only | -| clearning.cpp:25:7:25:7 | s | IR only | -| clearning.cpp:26:7:26:7 | s | IR only | -| clearning.cpp:27:12:27:12 | s | IR only | +| clearning.cpp:20:10:20:10 | s | IR only | +| clearning.cpp:25:5:25:5 | s | IR only | +| clearning.cpp:26:5:26:5 | s | IR only | +| clearning.cpp:27:10:27:10 | s | IR only | | clearning.cpp:32:3:32:6 | * ... | AST only | -| clearning.cpp:33:7:33:7 | s | IR only | +| clearning.cpp:33:5:33:5 | s | IR only | | clearning.cpp:34:8:34:11 | * ... | IR only | -| clearning.cpp:34:11:34:11 | s | IR only | +| clearning.cpp:34:9:34:9 | s | IR only | | clearning.cpp:39:3:39:6 | * ... | AST only | | clearning.cpp:40:5:40:5 | x | AST only | | clearning.cpp:41:8:41:11 | * ... | IR only | -| clearning.cpp:41:11:41:11 | s | IR only | -| clearning.cpp:46:7:46:7 | s | IR only | +| clearning.cpp:41:9:41:9 | s | IR only | +| clearning.cpp:46:5:46:5 | s | IR only | | clearning.cpp:47:5:47:5 | x | AST only | | clearning.cpp:48:8:48:11 | * ... | IR only | -| clearning.cpp:48:11:48:11 | s | IR only | +| clearning.cpp:48:9:48:9 | s | IR only | | clearning.cpp:53:3:53:6 | * ... | AST only | | clearning.cpp:54:5:54:5 | x | AST only | -| clearning.cpp:60:7:60:7 | s | IR only | +| clearning.cpp:60:5:60:5 | s | IR only | | clearning.cpp:61:5:61:5 | x | AST only | | clearning.cpp:75:2:75:10 | access to array | AST only | -| clearning.cpp:76:10:76:12 | s | IR only | +| clearning.cpp:76:8:76:8 | s | IR only | | clearning.cpp:82:2:82:9 | access to array | AST only | | clearning.cpp:83:7:83:9 | val | AST only | -| clearning.cpp:83:15:83:17 | s | IR only | -| clearning.cpp:84:10:84:12 | s | IR only | +| clearning.cpp:83:13:83:13 | s | IR only | +| clearning.cpp:84:8:84:8 | s | IR only | | clearning.cpp:90:5:90:7 | val | AST only | -| clearning.cpp:91:10:91:12 | s | IR only | +| clearning.cpp:91:8:91:8 | s | IR only | | clearning.cpp:97:4:97:6 | val | AST only | -| clearning.cpp:97:12:97:14 | s | IR only | -| clearning.cpp:98:10:98:12 | s | IR only | +| clearning.cpp:97:10:97:10 | s | IR only | +| clearning.cpp:98:8:98:8 | s | IR only | | clearning.cpp:104:4:104:6 | val | AST only | -| clearning.cpp:105:10:105:12 | s | IR only | +| clearning.cpp:105:8:105:8 | s | IR only | | clearning.cpp:111:6:111:8 | val | AST only | -| clearning.cpp:112:10:112:12 | s | IR only | +| clearning.cpp:112:8:112:8 | s | IR only | | clearning.cpp:118:4:118:6 | val | AST only | -| clearning.cpp:119:10:119:12 | s | IR only | +| clearning.cpp:119:8:119:8 | s | IR only | | clearning.cpp:124:4:124:6 | val | AST only | | clearning.cpp:125:4:125:6 | val | AST only | | clearning.cpp:131:4:131:6 | val | AST only | @@ -214,38 +214,38 @@ WARNING: Module DataFlow has been deprecated and may be removed in future (parti | clearning.cpp:138:4:138:6 | val | AST only | | clearning.cpp:139:6:139:8 | val | AST only | | clearning.cpp:151:5:151:7 | val | AST only | -| clearning.cpp:152:10:152:12 | s | IR only | +| clearning.cpp:152:8:152:8 | s | IR only | | clearning.cpp:157:5:157:7 | val | AST only | | clearning.cpp:158:5:158:7 | val | AST only | -| clearning.cpp:159:10:159:12 | s | IR only | +| clearning.cpp:159:8:159:8 | s | IR only | | clearning.cpp:164:5:164:7 | val | AST only | | clearning.cpp:165:5:165:7 | val | AST only | -| clearning.cpp:166:10:166:12 | s | IR only | +| clearning.cpp:166:8:166:8 | s | IR only | | clearning.cpp:171:5:171:7 | val | AST only | | clearning.cpp:172:5:172:7 | val | AST only | -| clearning.cpp:173:10:173:12 | s | IR only | +| clearning.cpp:173:8:173:8 | s | IR only | | clearning.cpp:178:5:178:7 | val | AST only | | clearning.cpp:179:5:179:7 | val | AST only | -| clearning.cpp:179:13:179:15 | s | IR only | -| clearning.cpp:180:10:180:12 | s | IR only | +| clearning.cpp:179:11:179:11 | s | IR only | +| clearning.cpp:180:8:180:8 | s | IR only | | complex.cpp:9:20:9:21 | this | IR only | | complex.cpp:10:20:10:21 | this | IR only | | complex.cpp:11:22:11:23 | a_ | AST only | | complex.cpp:12:22:12:23 | b_ | AST only | | conflated.cpp:10:3:10:7 | * ... | AST only | -| conflated.cpp:11:12:11:12 | ra | IR only | +| conflated.cpp:11:9:11:10 | ra | IR only | | conflated.cpp:29:7:29:7 | x | AST only | -| conflated.cpp:30:12:30:12 | pa | IR only | +| conflated.cpp:30:8:30:9 | pa | IR only | | conflated.cpp:36:7:36:7 | x | AST only | -| conflated.cpp:37:12:37:12 | pa | IR only | +| conflated.cpp:37:8:37:9 | pa | IR only | | conflated.cpp:53:7:53:10 | next | AST only | | conflated.cpp:54:13:54:13 | y | AST only | -| conflated.cpp:55:12:55:15 | ll | IR only | -| conflated.cpp:55:18:55:18 | next | IR only | +| conflated.cpp:55:8:55:9 | ll | IR only | +| conflated.cpp:55:12:55:15 | next | IR only | | conflated.cpp:59:20:59:39 | new | IR only | | conflated.cpp:60:13:60:13 | y | AST only | -| conflated.cpp:61:12:61:15 | ll | IR only | -| conflated.cpp:61:18:61:18 | next | IR only | +| conflated.cpp:61:8:61:9 | ll | IR only | +| conflated.cpp:61:12:61:15 | next | IR only | | constructors.cpp:18:22:18:23 | this | IR only | | constructors.cpp:19:22:19:23 | this | IR only | | constructors.cpp:20:24:20:25 | a_ | AST only | @@ -261,31 +261,31 @@ WARNING: Module DataFlow has been deprecated and may be removed in future (parti | realistic.cpp:49:20:49:22 | baz | AST only | | realistic.cpp:53:35:53:43 | bufferLen | AST only | | realistic.cpp:54:50:54:61 | call to user_input | IR only | -| realistic.cpp:55:16:55:18 | foo | IR only | -| realistic.cpp:55:23:55:25 | access to array | IR only | -| realistic.cpp:55:28:55:36 | baz | IR only | -| realistic.cpp:55:38:55:46 | userInput | IR only | -| realistic.cpp:57:92:57:94 | foo | IR only | -| realistic.cpp:57:99:57:101 | access to array | IR only | -| realistic.cpp:57:104:57:112 | baz | IR only | -| realistic.cpp:57:114:57:122 | userInput | IR only | +| realistic.cpp:55:12:55:14 | foo | IR only | +| realistic.cpp:55:12:55:21 | access to array | IR only | +| realistic.cpp:55:23:55:25 | baz | IR only | +| realistic.cpp:55:28:55:36 | userInput | IR only | +| realistic.cpp:57:88:57:90 | foo | IR only | +| realistic.cpp:57:88:57:97 | access to array | IR only | +| realistic.cpp:57:99:57:101 | baz | IR only | +| realistic.cpp:57:104:57:112 | userInput | IR only | +| realistic.cpp:60:21:60:23 | foo | IR only | +| realistic.cpp:60:21:60:30 | access to array | IR only | | realistic.cpp:60:21:60:52 | buffer | IR only | -| realistic.cpp:60:25:60:27 | foo | IR only | -| realistic.cpp:60:32:60:34 | access to array | IR only | -| realistic.cpp:60:37:60:45 | baz | IR only | -| realistic.cpp:60:47:60:52 | userInput | IR only | -| realistic.cpp:60:59:60:61 | foo | IR only | -| realistic.cpp:60:66:60:68 | access to array | IR only | -| realistic.cpp:60:71:60:79 | baz | IR only | -| realistic.cpp:60:81:60:89 | userInput | IR only | +| realistic.cpp:60:32:60:34 | baz | IR only | +| realistic.cpp:60:37:60:45 | userInput | IR only | +| realistic.cpp:60:55:60:57 | foo | IR only | +| realistic.cpp:60:55:60:64 | access to array | IR only | +| realistic.cpp:60:66:60:68 | baz | IR only | +| realistic.cpp:60:71:60:79 | userInput | IR only | | simple.cpp:18:22:18:23 | this | IR only | | simple.cpp:19:22:19:23 | this | IR only | | simple.cpp:20:24:20:25 | a_ | AST only | | simple.cpp:21:24:21:25 | b_ | AST only | | simple.cpp:65:7:65:7 | i | AST only | -| simple.cpp:67:13:67:13 | a2 | IR only | +| simple.cpp:67:10:67:11 | a2 | IR only | +| simple.cpp:79:16:79:17 | f2 | IR only | | simple.cpp:79:16:79:17 | this | IR only | -| simple.cpp:79:19:79:20 | f2 | IR only | | simple.cpp:83:12:83:13 | f1 | AST only | | simple.cpp:92:7:92:7 | i | AST only | -| simple.cpp:94:13:94:13 | a2 | IR only | +| simple.cpp:94:10:94:11 | a2 | IR only | diff --git a/cpp/ql/test/query-tests/Critical/MemoryFreed/UseAfterFree.expected b/cpp/ql/test/query-tests/Critical/MemoryFreed/UseAfterFree.expected index 6df347582cb8..6408ac14ae08 100644 --- a/cpp/ql/test/query-tests/Critical/MemoryFreed/UseAfterFree.expected +++ b/cpp/ql/test/query-tests/Critical/MemoryFreed/UseAfterFree.expected @@ -13,8 +13,8 @@ edges | test_free.cpp:239:14:239:15 | * ... | test_free.cpp:241:9:241:10 | * ... | | test_free.cpp:245:10:245:11 | * ... | test_free.cpp:246:9:246:10 | * ... | | test_free.cpp:293:8:293:10 | buf | test_free.cpp:294:3:294:13 | ... = ... | -| test_free.cpp:294:3:294:13 | ... = ... | test_free.cpp:294:5:294:7 | s indirection [post update] [buf] | -| test_free.cpp:294:5:294:7 | s indirection [post update] [buf] | test_free.cpp:295:12:295:12 | s indirection [buf] | +| test_free.cpp:294:3:294:3 | s indirection [post update] [buf] | test_free.cpp:295:12:295:12 | s indirection [buf] | +| test_free.cpp:294:3:294:13 | ... = ... | test_free.cpp:294:3:294:3 | s indirection [post update] [buf] | | test_free.cpp:295:12:295:12 | s indirection [buf] | test_free.cpp:295:14:295:16 | buf | nodes | test_free.cpp:11:10:11:10 | a | semmle.label | a | @@ -43,8 +43,8 @@ nodes | test_free.cpp:245:10:245:11 | * ... | semmle.label | * ... | | test_free.cpp:246:9:246:10 | * ... | semmle.label | * ... | | test_free.cpp:293:8:293:10 | buf | semmle.label | buf | +| test_free.cpp:294:3:294:3 | s indirection [post update] [buf] | semmle.label | s indirection [post update] [buf] | | test_free.cpp:294:3:294:13 | ... = ... | semmle.label | ... = ... | -| test_free.cpp:294:5:294:7 | s indirection [post update] [buf] | semmle.label | s indirection [post update] [buf] | | test_free.cpp:295:12:295:12 | s indirection [buf] | semmle.label | s indirection [buf] | | test_free.cpp:295:14:295:16 | buf | semmle.label | buf | subpaths diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-119/SAMATE/OverrunWriteProductFlow.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-119/SAMATE/OverrunWriteProductFlow.expected index c9fd98569cc6..c8126847c655 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-119/SAMATE/OverrunWriteProductFlow.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-119/SAMATE/OverrunWriteProductFlow.expected @@ -1,7 +1,7 @@ edges | test.cpp:16:11:16:21 | mk_string_t indirection [string] | test.cpp:39:21:39:31 | call to mk_string_t indirection [string] | -| test.cpp:18:5:18:30 | ... = ... | test.cpp:18:10:18:15 | str indirection [post update] [string] | -| test.cpp:18:10:18:15 | str indirection [post update] [string] | test.cpp:19:5:19:7 | str indirection [string] | +| test.cpp:18:5:18:7 | str indirection [post update] [string] | test.cpp:19:5:19:7 | str indirection [string] | +| test.cpp:18:5:18:30 | ... = ... | test.cpp:18:5:18:7 | str indirection [post update] [string] | | test.cpp:18:19:18:24 | call to malloc | test.cpp:18:5:18:30 | ... = ... | | test.cpp:19:5:19:7 | str indirection [string] | test.cpp:16:11:16:21 | mk_string_t indirection [string] | | test.cpp:39:21:39:31 | call to mk_string_t indirection [string] | test.cpp:42:13:42:15 | str indirection [string] | @@ -11,8 +11,8 @@ edges | test.cpp:72:17:72:19 | str indirection [string] | test.cpp:72:22:72:27 | string | | test.cpp:80:17:80:19 | str indirection [string] | test.cpp:80:22:80:27 | string | | test.cpp:88:11:88:30 | mk_string_t_plus_one indirection [string] | test.cpp:96:21:96:40 | call to mk_string_t_plus_one indirection [string] | -| test.cpp:90:5:90:34 | ... = ... | test.cpp:90:10:90:15 | str indirection [post update] [string] | -| test.cpp:90:10:90:15 | str indirection [post update] [string] | test.cpp:91:5:91:7 | str indirection [string] | +| test.cpp:90:5:90:7 | str indirection [post update] [string] | test.cpp:91:5:91:7 | str indirection [string] | +| test.cpp:90:5:90:34 | ... = ... | test.cpp:90:5:90:7 | str indirection [post update] [string] | | test.cpp:90:19:90:24 | call to malloc | test.cpp:90:5:90:34 | ... = ... | | test.cpp:91:5:91:7 | str indirection [string] | test.cpp:88:11:88:30 | mk_string_t_plus_one indirection [string] | | test.cpp:96:21:96:40 | call to mk_string_t_plus_one indirection [string] | test.cpp:99:13:99:15 | str indirection [string] | @@ -21,8 +21,8 @@ edges | test.cpp:99:13:99:15 | str indirection [string] | test.cpp:99:18:99:23 | string | | test.cpp:129:17:129:19 | str indirection [string] | test.cpp:129:22:129:27 | string | | test.cpp:137:17:137:19 | str indirection [string] | test.cpp:137:22:137:27 | string | -| test.cpp:147:5:147:34 | ... = ... | test.cpp:147:10:147:15 | str indirection [post update] [string] | -| test.cpp:147:10:147:15 | str indirection [post update] [string] | test.cpp:148:5:148:7 | str indirection [string] | +| test.cpp:147:5:147:7 | str indirection [post update] [string] | test.cpp:148:5:148:7 | str indirection [string] | +| test.cpp:147:5:147:34 | ... = ... | test.cpp:147:5:147:7 | str indirection [post update] [string] | | test.cpp:147:19:147:24 | call to malloc | test.cpp:147:5:147:34 | ... = ... | | test.cpp:148:5:148:7 | str indirection [string] | test.cpp:152:13:152:15 | str indirection [string] | | test.cpp:148:5:148:7 | str indirection [string] | test.cpp:154:13:154:15 | str indirection [string] | @@ -47,7 +47,7 @@ edges | test.cpp:222:15:222:20 | buffer | test.cpp:214:24:214:24 | p | | test.cpp:228:27:228:54 | call to malloc | test.cpp:232:10:232:15 | buffer | | test.cpp:235:40:235:45 | buffer | test.cpp:236:5:236:26 | ... = ... | -| test.cpp:236:5:236:26 | ... = ... | test.cpp:236:12:236:17 | p_str indirection [post update] [string] | +| test.cpp:236:5:236:26 | ... = ... | test.cpp:236:5:236:9 | p_str indirection [post update] [string] | | test.cpp:241:20:241:38 | call to malloc | test.cpp:242:22:242:27 | buffer | | test.cpp:242:16:242:19 | set_string output argument [string] | test.cpp:243:12:243:14 | str indirection [string] | | test.cpp:242:22:242:27 | buffer | test.cpp:235:40:235:45 | buffer | @@ -59,8 +59,8 @@ edges | test.cpp:264:13:264:30 | call to malloc | test.cpp:266:12:266:12 | p | nodes | test.cpp:16:11:16:21 | mk_string_t indirection [string] | semmle.label | mk_string_t indirection [string] | +| test.cpp:18:5:18:7 | str indirection [post update] [string] | semmle.label | str indirection [post update] [string] | | test.cpp:18:5:18:30 | ... = ... | semmle.label | ... = ... | -| test.cpp:18:10:18:15 | str indirection [post update] [string] | semmle.label | str indirection [post update] [string] | | test.cpp:18:19:18:24 | call to malloc | semmle.label | call to malloc | | test.cpp:19:5:19:7 | str indirection [string] | semmle.label | str indirection [string] | | test.cpp:39:21:39:31 | call to mk_string_t indirection [string] | semmle.label | call to mk_string_t indirection [string] | @@ -71,8 +71,8 @@ nodes | test.cpp:80:17:80:19 | str indirection [string] | semmle.label | str indirection [string] | | test.cpp:80:22:80:27 | string | semmle.label | string | | test.cpp:88:11:88:30 | mk_string_t_plus_one indirection [string] | semmle.label | mk_string_t_plus_one indirection [string] | +| test.cpp:90:5:90:7 | str indirection [post update] [string] | semmle.label | str indirection [post update] [string] | | test.cpp:90:5:90:34 | ... = ... | semmle.label | ... = ... | -| test.cpp:90:10:90:15 | str indirection [post update] [string] | semmle.label | str indirection [post update] [string] | | test.cpp:90:19:90:24 | call to malloc | semmle.label | call to malloc | | test.cpp:91:5:91:7 | str indirection [string] | semmle.label | str indirection [string] | | test.cpp:96:21:96:40 | call to mk_string_t_plus_one indirection [string] | semmle.label | call to mk_string_t_plus_one indirection [string] | @@ -82,8 +82,8 @@ nodes | test.cpp:129:22:129:27 | string | semmle.label | string | | test.cpp:137:17:137:19 | str indirection [string] | semmle.label | str indirection [string] | | test.cpp:137:22:137:27 | string | semmle.label | string | +| test.cpp:147:5:147:7 | str indirection [post update] [string] | semmle.label | str indirection [post update] [string] | | test.cpp:147:5:147:34 | ... = ... | semmle.label | ... = ... | -| test.cpp:147:10:147:15 | str indirection [post update] [string] | semmle.label | str indirection [post update] [string] | | test.cpp:147:19:147:24 | call to malloc | semmle.label | call to malloc | | test.cpp:148:5:148:7 | str indirection [string] | semmle.label | str indirection [string] | | test.cpp:152:13:152:15 | str indirection [string] | semmle.label | str indirection [string] | @@ -111,8 +111,8 @@ nodes | test.cpp:228:27:228:54 | call to malloc | semmle.label | call to malloc | | test.cpp:232:10:232:15 | buffer | semmle.label | buffer | | test.cpp:235:40:235:45 | buffer | semmle.label | buffer | +| test.cpp:236:5:236:9 | p_str indirection [post update] [string] | semmle.label | p_str indirection [post update] [string] | | test.cpp:236:5:236:26 | ... = ... | semmle.label | ... = ... | -| test.cpp:236:12:236:17 | p_str indirection [post update] [string] | semmle.label | p_str indirection [post update] [string] | | test.cpp:241:20:241:38 | call to malloc | semmle.label | call to malloc | | test.cpp:242:16:242:19 | set_string output argument [string] | semmle.label | set_string output argument [string] | | test.cpp:242:22:242:27 | buffer | semmle.label | buffer | @@ -126,7 +126,7 @@ nodes | test.cpp:264:13:264:30 | call to malloc | semmle.label | call to malloc | | test.cpp:266:12:266:12 | p | semmle.label | p | subpaths -| test.cpp:242:22:242:27 | buffer | test.cpp:235:40:235:45 | buffer | test.cpp:236:12:236:17 | p_str indirection [post update] [string] | test.cpp:242:16:242:19 | set_string output argument [string] | +| test.cpp:242:22:242:27 | buffer | test.cpp:235:40:235:45 | buffer | test.cpp:236:5:236:9 | p_str indirection [post update] [string] | test.cpp:242:16:242:19 | set_string output argument [string] | #select | test.cpp:42:5:42:11 | call to strncpy | test.cpp:18:19:18:24 | call to malloc | test.cpp:42:18:42:23 | string | This write may overflow $@ by 1 element. | test.cpp:42:18:42:23 | string | string | | test.cpp:72:9:72:15 | call to strncpy | test.cpp:18:19:18:24 | call to malloc | test.cpp:72:22:72:27 | string | This write may overflow $@ by 1 element. | test.cpp:72:22:72:27 | string | string | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-119/semmle/tests/UnboundedWrite.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-119/semmle/tests/UnboundedWrite.expected index 8505572d019e..4f17c5af4b87 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-119/semmle/tests/UnboundedWrite.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-119/semmle/tests/UnboundedWrite.expected @@ -3,8 +3,8 @@ edges | main.cpp:10:20:10:23 | argv indirection | tests.cpp:657:32:657:35 | argv indirection | | tests.cpp:613:19:613:24 | source indirection | tests.cpp:615:17:615:22 | source indirection | | tests.cpp:622:19:622:24 | source indirection | tests.cpp:625:2:625:16 | ... = ... indirection | -| tests.cpp:625:2:625:16 | ... = ... indirection | tests.cpp:625:4:625:7 | s indirection [post update] [home indirection] | -| tests.cpp:625:4:625:7 | s indirection [post update] [home indirection] | tests.cpp:628:14:628:14 | s indirection [home indirection] | +| tests.cpp:625:2:625:2 | s indirection [post update] [home indirection] | tests.cpp:628:14:628:14 | s indirection [home indirection] | +| tests.cpp:625:2:625:16 | ... = ... indirection | tests.cpp:625:2:625:2 | s indirection [post update] [home indirection] | | tests.cpp:628:14:628:14 | s indirection [home indirection] | tests.cpp:628:14:628:19 | home indirection | | tests.cpp:628:14:628:14 | s indirection [home indirection] | tests.cpp:628:16:628:19 | home indirection | | tests.cpp:628:16:628:19 | home indirection | tests.cpp:628:14:628:19 | home indirection | @@ -18,8 +18,8 @@ nodes | tests.cpp:613:19:613:24 | source indirection | semmle.label | source indirection | | tests.cpp:615:17:615:22 | source indirection | semmle.label | source indirection | | tests.cpp:622:19:622:24 | source indirection | semmle.label | source indirection | +| tests.cpp:625:2:625:2 | s indirection [post update] [home indirection] | semmle.label | s indirection [post update] [home indirection] | | tests.cpp:625:2:625:16 | ... = ... indirection | semmle.label | ... = ... indirection | -| tests.cpp:625:4:625:7 | s indirection [post update] [home indirection] | semmle.label | s indirection [post update] [home indirection] | | tests.cpp:628:14:628:14 | s indirection [home indirection] | semmle.label | s indirection [home indirection] | | tests.cpp:628:14:628:19 | home indirection | semmle.label | home indirection | | tests.cpp:628:16:628:19 | home indirection | semmle.label | home indirection | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-497/semmle/tests/ExposedSystemData.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-497/semmle/tests/ExposedSystemData.expected index 9f7acb86e92c..bc6a8006be86 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-497/semmle/tests/ExposedSystemData.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-497/semmle/tests/ExposedSystemData.expected @@ -4,8 +4,8 @@ edges | tests2.cpp:78:18:78:38 | call to mysql_get_client_info indirection | tests2.cpp:81:14:81:19 | buffer indirection | | tests2.cpp:91:42:91:45 | str1 indirection | tests2.cpp:93:14:93:17 | str1 indirection | | tests2.cpp:101:8:101:15 | call to getpwuid indirection | tests2.cpp:102:14:102:15 | pw indirection | -| tests2.cpp:109:3:109:36 | ... = ... indirection | tests2.cpp:109:6:109:8 | c1 indirection [post update] [ptr indirection] | -| tests2.cpp:109:6:109:8 | c1 indirection [post update] [ptr indirection] | tests2.cpp:111:14:111:15 | c1 indirection [ptr indirection] | +| tests2.cpp:109:3:109:4 | c1 indirection [post update] [ptr indirection] | tests2.cpp:111:14:111:15 | c1 indirection [ptr indirection] | +| tests2.cpp:109:3:109:36 | ... = ... indirection | tests2.cpp:109:3:109:4 | c1 indirection [post update] [ptr indirection] | | tests2.cpp:109:12:109:17 | call to getenv indirection | tests2.cpp:109:3:109:36 | ... = ... indirection | | tests2.cpp:111:14:111:15 | c1 indirection [ptr indirection] | tests2.cpp:111:14:111:19 | ptr indirection | | tests2.cpp:111:14:111:15 | c1 indirection [ptr indirection] | tests2.cpp:111:17:111:19 | ptr indirection | @@ -30,8 +30,8 @@ nodes | tests2.cpp:93:14:93:17 | str1 indirection | semmle.label | str1 indirection | | tests2.cpp:101:8:101:15 | call to getpwuid indirection | semmle.label | call to getpwuid indirection | | tests2.cpp:102:14:102:15 | pw indirection | semmle.label | pw indirection | +| tests2.cpp:109:3:109:4 | c1 indirection [post update] [ptr indirection] | semmle.label | c1 indirection [post update] [ptr indirection] | | tests2.cpp:109:3:109:36 | ... = ... indirection | semmle.label | ... = ... indirection | -| tests2.cpp:109:6:109:8 | c1 indirection [post update] [ptr indirection] | semmle.label | c1 indirection [post update] [ptr indirection] | | tests2.cpp:109:12:109:17 | call to getenv indirection | semmle.label | call to getenv indirection | | tests2.cpp:111:14:111:15 | c1 indirection [ptr indirection] | semmle.label | c1 indirection [ptr indirection] | | tests2.cpp:111:14:111:19 | ptr indirection | semmle.label | ptr indirection |