C++: Fix a bug in Expr <-> Node mapping.

This commit is contained in:
Mathias Vorreiter Pedersen
2023-02-21 11:48:37 +00:00
parent 09df318e9e
commit 2cb4a554ea
4 changed files with 107 additions and 250 deletions

View File

@@ -48,5 +48,5 @@ void following_pointers( // $ ast-def=sourceStruct1_ptr
int stackArray[2] = { source(), source() };
stackArray[0] = source();
sink(stackArray); // $ ast ir
sink(stackArray); // $ ast ir ir=49:35 ir=50:19
}

View File

@@ -60,8 +60,8 @@ edges
| 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 | (C *)... indirection [a] |
| A.cpp:101:8:101:9 | (C *)... indirection [a] | A.cpp:103:14:103:14 | c indirection [a] |
| A.cpp:100:9:100:9 | c1 indirection [post update] [a] | A.cpp:101:8:101:9 | c1 indirection [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] |
| A.cpp:107:12:107:13 | c1 indirection [a] | A.cpp:107:12:107:16 | a |
@@ -268,6 +268,7 @@ edges
| E.cpp:21:13:21:16 | data indirection [buffer indirection] | E.cpp:21:18:21:23 | buffer indirection |
| E.cpp:21:18:21:23 | 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: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] |
@@ -280,8 +281,8 @@ edges
| 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: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 | (reference dereference) indirection [post update] [m1] |
| aliasing.cpp:13:5:13:6 | (reference dereference) indirection [post update] [m1] | aliasing.cpp:26:19:26:20 | referenceSetter output argument [m1] |
| 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: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] |
@@ -457,21 +458,21 @@ edges
| by_reference.cpp:44:12:44:24 | call to nonMemberGetA | by_reference.cpp:43:9:43:27 | getThroughNonMember indirection |
| by_reference.cpp:44:26:44:29 | this indirection [a] | by_reference.cpp:31:46:31:46 | s indirection [a] |
| by_reference.cpp:44:26:44:29 | this indirection [a] | by_reference.cpp:44:12:44:24 | call to nonMemberGetA |
| by_reference.cpp:50:3:50:3 | setDirectly output argument [a] | by_reference.cpp:51:8:51:8 | (const S)... indirection [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:50:17:50:26 | call to user_input | by_reference.cpp:15:26:15:30 | value |
| by_reference.cpp:50:17:50:26 | call to user_input | by_reference.cpp:50:3:50:3 | setDirectly output argument [a] |
| by_reference.cpp:51:8:51:8 | (const S)... indirection [a] | by_reference.cpp:35:9:35:19 | this indirection [a] |
| by_reference.cpp:51:8:51:8 | (const S)... indirection [a] | by_reference.cpp:51:10:51:20 | call to getDirectly |
| by_reference.cpp:56:3:56:3 | setIndirectly output argument [a] | by_reference.cpp:57:8:57:8 | (const S)... indirection [a] |
| by_reference.cpp:51:8:51:8 | s indirection [a] | by_reference.cpp:35:9:35:19 | this indirection [a] |
| by_reference.cpp:51:8:51:8 | s indirection [a] | by_reference.cpp:51:10:51:20 | call to getDirectly |
| by_reference.cpp:56:3:56:3 | setIndirectly output argument [a] | by_reference.cpp:57:8:57:8 | s indirection [a] |
| by_reference.cpp:56:19:56:28 | call to user_input | by_reference.cpp:19:28:19:32 | value |
| by_reference.cpp:56:19:56:28 | call to user_input | by_reference.cpp:56:3:56:3 | setIndirectly output argument [a] |
| by_reference.cpp:57:8:57:8 | (const S)... indirection [a] | by_reference.cpp:39:9:39:21 | this indirection [a] |
| by_reference.cpp:57:8:57:8 | (const S)... indirection [a] | by_reference.cpp:57:10:57:22 | call to getIndirectly |
| by_reference.cpp:62:3:62:3 | setThroughNonMember output argument [a] | by_reference.cpp:63:8:63:8 | (const S)... indirection [a] |
| by_reference.cpp:57:8:57:8 | s indirection [a] | by_reference.cpp:39:9:39:21 | this indirection [a] |
| by_reference.cpp:57:8:57:8 | s indirection [a] | by_reference.cpp:57:10:57:22 | call to getIndirectly |
| by_reference.cpp:62:3:62:3 | setThroughNonMember output argument [a] | by_reference.cpp:63:8:63:8 | s indirection [a] |
| by_reference.cpp:62:25:62:34 | call to user_input | by_reference.cpp:23:34:23:38 | value |
| by_reference.cpp:62:25:62:34 | call to user_input | by_reference.cpp:62:3:62:3 | setThroughNonMember output argument [a] |
| by_reference.cpp:63:8:63:8 | (const S)... indirection [a] | by_reference.cpp:43:9:43:27 | this indirection [a] |
| by_reference.cpp:63:8:63:8 | (const S)... indirection [a] | by_reference.cpp:63:10:63:28 | call to getThroughNonMember |
| by_reference.cpp:63:8:63:8 | s indirection [a] | by_reference.cpp:43:9:43:27 | this indirection [a] |
| by_reference.cpp:63:8:63:8 | s indirection [a] | by_reference.cpp:63:10:63:28 | call to getThroughNonMember |
| by_reference.cpp:68:17:68:18 | nonMemberSetA output argument [a] | by_reference.cpp:69:22:69:23 | & ... indirection [a] |
| by_reference.cpp:68:21:68:30 | call to user_input | by_reference.cpp:11:48:11:52 | value |
| by_reference.cpp:68:21:68:30 | call to user_input | by_reference.cpp:68:17:68:18 | nonMemberSetA output argument [a] |
@@ -483,11 +484,11 @@ edges
| 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: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 | (reference dereference) indirection [post update] [a] |
| by_reference.cpp:88:9:88:9 | (reference dereference) 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 | (reference dereference) 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 | (reference dereference) 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 | (reference dereference) 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: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: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 |
@@ -585,17 +586,17 @@ edges
| complex.cpp:11:22:11:27 | ... = ... | complex.cpp:11:22:11:23 | this indirection [post update] [a_] |
| complex.cpp:12:17:12:17 | b | complex.cpp:12:22:12:27 | ... = ... |
| complex.cpp:12:22:12:27 | ... = ... | complex.cpp:12:22:12:23 | this indirection [post update] [b_] |
| complex.cpp:40:17:40:17 | b indirection [inner, f, a_] | complex.cpp:42:8:42:8 | (reference dereference) indirection [inner, f, a_] |
| complex.cpp:40:17:40:17 | b indirection [inner, f, b_] | complex.cpp:43:8:43:8 | (reference dereference) indirection [inner, f, b_] |
| complex.cpp:42:8:42:8 | (reference dereference) indirection [inner, f, a_] | complex.cpp:42:10:42:14 | inner indirection [f, a_] |
| complex.cpp:40:17:40:17 | b indirection [inner, f, a_] | complex.cpp:42:8:42:8 | b indirection [inner, f, a_] |
| complex.cpp:40:17:40:17 | b indirection [inner, f, b_] | complex.cpp:43:8:43:8 | b indirection [inner, f, b_] |
| complex.cpp:42:8:42:8 | b indirection [inner, f, a_] | complex.cpp:42:10:42:14 | inner indirection [f, a_] |
| complex.cpp:42:10:42:14 | inner indirection [f, a_] | complex.cpp:42:16:42:16 | f indirection [a_] |
| complex.cpp:42:16:42:16 | f indirection [a_] | complex.cpp:9:7:9:7 | this indirection [a_] |
| complex.cpp:42:16:42:16 | f indirection [a_] | complex.cpp:42:18:42:18 | call to a |
| complex.cpp:43:8:43:8 | (reference dereference) indirection [inner, f, b_] | complex.cpp:43:10:43:14 | inner indirection [f, b_] |
| complex.cpp:43:8:43:8 | b indirection [inner, f, b_] | complex.cpp:43:10:43:14 | inner indirection [f, b_] |
| 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 | (reference to) indirection [inner, f, a_] |
| 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_] |
@@ -604,7 +605,7 @@ edges
| 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: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 | (reference to) indirection [inner, f, b_] |
| 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_] |
@@ -613,7 +614,7 @@ edges
| 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: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 | (reference to) indirection [inner, f, a_] |
| 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_] |
@@ -622,7 +623,7 @@ edges
| 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: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 | (reference to) indirection [inner, f, b_] |
| 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_] |
@@ -631,20 +632,21 @@ edges
| 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: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 | (reference to) indirection [inner, f, a_] | complex.cpp:40:17:40:17 | b indirection [inner, f, a_] |
| complex.cpp:62:7:62:8 | (reference to) indirection [inner, f, b_] | complex.cpp:40:17:40:17 | b indirection [inner, f, b_] |
| complex.cpp:65:7:65:8 | (reference to) indirection [inner, f, a_] | complex.cpp:40:17:40:17 | b indirection [inner, f, a_] |
| complex.cpp:65:7:65:8 | (reference to) 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 | (reference dereference) indirection [post update] [p indirection] |
| conflated.cpp:10:7:10:7 | (reference dereference) indirection [post update] [p indirection] | conflated.cpp:11:9:11:10 | (reference dereference) indirection [p indirection] |
| 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:11:10:20 | call to user_input | conflated.cpp:10:3:10:22 | ... = ... |
| conflated.cpp:11:9:11:10 | (reference dereference) indirection [p indirection] | conflated.cpp:11:8:11:12 | * ... |
| conflated.cpp:11:9:11:10 | (reference dereference) indirection [p indirection] | conflated.cpp:11:12:11:12 | p indirection |
| conflated.cpp:11:9:11:10 | (reference dereference) indirection [p indirection] | conflated.cpp:11:12:11:12 | p indirection |
| conflated.cpp:11:9:11:10 | ra indirection [p indirection] | conflated.cpp:11:8:11:12 | * ... |
| conflated.cpp:11:9:11:10 | ra indirection [p indirection] | conflated.cpp:11:12:11:12 | p indirection |
| conflated.cpp:11:9:11:10 | ra indirection [p indirection] | conflated.cpp:11:12:11:12 | p indirection |
| conflated.cpp:11:12:11:12 | p indirection | conflated.cpp:11:8:11:12 | * ... |
| conflated.cpp:11:12:11:12 | 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:19:19:19:21 | argument_source output argument | conflated.cpp:20:8:20:10 | raw indirection |
| 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:11:29:20 | call to user_input | conflated.cpp:29:3:29:22 | ... = ... |
@@ -691,34 +693,34 @@ edges
| 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:26:15:26:15 | f indirection [a_] | constructors.cpp:28:10:28:10 | (reference dereference) indirection [a_] |
| constructors.cpp:26:15:26:15 | f indirection [b_] | constructors.cpp:29:10:29:10 | (reference dereference) indirection [b_] |
| constructors.cpp:28:10:28:10 | (reference dereference) indirection [a_] | constructors.cpp:18:9:18:9 | this indirection [a_] |
| constructors.cpp:28:10:28:10 | (reference dereference) indirection [a_] | constructors.cpp:28:12:28:12 | call to a |
| constructors.cpp:29:10:29:10 | (reference dereference) indirection [b_] | constructors.cpp:19:9:19:9 | this indirection [b_] |
| constructors.cpp:29:10:29:10 | (reference dereference) indirection [b_] | constructors.cpp:29:12:29:12 | call to b |
| constructors.cpp:34:9:34:9 | call to Foo [a_] | constructors.cpp:40:9:40:9 | (reference to) indirection [a_] |
| 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_] |
| constructors.cpp:28:10:28:10 | f indirection [a_] | 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:29:10:29:10 | f indirection [b_] | constructors.cpp:29:12:29:12 | call to b |
| constructors.cpp:34:9:34:9 | call to Foo [a_] | constructors.cpp:40:9:40:9 | f indirection [a_] |
| constructors.cpp:34:11:34:20 | call to user_input | constructors.cpp:23:13:23:13 | a |
| constructors.cpp:34:11:34:20 | call to user_input | constructors.cpp:34:9:34:9 | call to Foo [a_] |
| constructors.cpp:35:9:35:9 | call to Foo [b_] | constructors.cpp:43:9:43:9 | (reference to) indirection [b_] |
| constructors.cpp:35:9:35:9 | call to Foo [b_] | constructors.cpp:43:9:43:9 | g indirection [b_] |
| constructors.cpp:35:14:35:23 | call to user_input | constructors.cpp:23:20:23:20 | b |
| constructors.cpp:35:14:35:23 | call to user_input | constructors.cpp:35:9:35:9 | call to Foo [b_] |
| constructors.cpp:36:9:36:9 | call to Foo [a_] | constructors.cpp:46:9:46:9 | (reference to) indirection [a_] |
| constructors.cpp:36:9:36:9 | call to Foo [b_] | constructors.cpp:46:9:46:9 | (reference to) indirection [b_] |
| constructors.cpp:36:9:36:9 | call to Foo [a_] | constructors.cpp:46:9:46:9 | h indirection [a_] |
| constructors.cpp:36:9:36:9 | call to Foo [b_] | constructors.cpp:46:9:46:9 | h indirection [b_] |
| constructors.cpp:36:11:36:20 | call to user_input | constructors.cpp:23:13:23:13 | a |
| constructors.cpp:36:11:36:20 | call to user_input | 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:36:25:36:34 | call to user_input | constructors.cpp:36:9:36:9 | call to Foo [b_] |
| constructors.cpp:40:9:40:9 | (reference to) indirection [a_] | constructors.cpp:26:15:26:15 | f indirection [a_] |
| constructors.cpp:43:9:43:9 | (reference to) indirection [b_] | constructors.cpp:26:15:26:15 | f indirection [b_] |
| constructors.cpp:46:9:46:9 | (reference to) indirection [a_] | constructors.cpp:26:15:26:15 | f indirection [a_] |
| constructors.cpp:46:9:46:9 | (reference to) indirection [b_] | constructors.cpp:26:15:26:15 | f indirection [b_] |
| constructors.cpp:40:9:40:9 | f indirection [a_] | constructors.cpp:26:15:26:15 | f indirection [a_] |
| constructors.cpp:43:9:43:9 | g indirection [b_] | constructors.cpp:26:15:26:15 | f indirection [b_] |
| 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: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:13:42:13:46 | value | qualifiers.cpp:13:51:13:65 | ... = ... |
| qualifiers.cpp:13:51:13:65 | ... = ... | qualifiers.cpp:13:57:13:57 | (reference dereference) indirection [post update] [a] |
| qualifiers.cpp:13:51:13:65 | ... = ... | qualifiers.cpp:13:57:13:57 | 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] |
@@ -809,28 +811,28 @@ edges
| simple.cpp:20:24:20:29 | ... = ... | simple.cpp:20:24:20:25 | this indirection [post update] [a_] |
| simple.cpp:21:19:21:19 | b | simple.cpp:21:24:21:29 | ... = ... |
| simple.cpp:21:24:21:29 | ... = ... | simple.cpp:21:24:21:25 | this indirection [post update] [b_] |
| simple.cpp:26:15:26:15 | f indirection [a_] | simple.cpp:28:10:28:10 | (reference dereference) indirection [a_] |
| simple.cpp:26:15:26:15 | f indirection [b_] | simple.cpp:29:10:29:10 | (reference dereference) indirection [b_] |
| simple.cpp:28:10:28:10 | (reference dereference) indirection [a_] | simple.cpp:18:9:18:9 | this indirection [a_] |
| simple.cpp:28:10:28:10 | (reference dereference) indirection [a_] | simple.cpp:28:12:28:12 | call to a |
| simple.cpp:29:10:29:10 | (reference dereference) indirection [b_] | simple.cpp:19:9:19:9 | this indirection [b_] |
| simple.cpp:29:10:29:10 | (reference dereference) indirection [b_] | simple.cpp:29:12:29:12 | call to b |
| simple.cpp:39:5:39:5 | setA output argument [a_] | simple.cpp:45:9:45:9 | (reference to) indirection [a_] |
| simple.cpp:26:15:26:15 | f indirection [a_] | simple.cpp:28:10:28:10 | f indirection [a_] |
| simple.cpp:26:15:26:15 | f indirection [b_] | simple.cpp:29:10:29:10 | f indirection [b_] |
| simple.cpp:28:10:28:10 | f indirection [a_] | simple.cpp:18:9:18:9 | this indirection [a_] |
| simple.cpp:28:10:28:10 | f indirection [a_] | 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:29:10:29:10 | f indirection [b_] | simple.cpp:29:12:29:12 | call to b |
| simple.cpp:39:5:39:5 | setA output argument [a_] | simple.cpp:45:9:45:9 | f indirection [a_] |
| simple.cpp:39:12:39:21 | call to user_input | simple.cpp:20:19:20:19 | a |
| simple.cpp:39:12:39:21 | call to user_input | simple.cpp:39:5:39:5 | setA output argument [a_] |
| simple.cpp:40:5:40:5 | setB output argument [b_] | simple.cpp:48:9:48:9 | (reference to) indirection [b_] |
| simple.cpp:40:5:40:5 | setB output argument [b_] | simple.cpp:48:9:48:9 | g indirection [b_] |
| simple.cpp:40:12:40:21 | call to user_input | simple.cpp:21:19:21:19 | b |
| simple.cpp:40:12:40:21 | call to user_input | simple.cpp:40:5:40:5 | setB output argument [b_] |
| simple.cpp:41:5:41:5 | setA output argument [a_] | simple.cpp:51:9:51:9 | (reference to) indirection [a_] |
| simple.cpp:41:5:41:5 | setA output argument [a_] | simple.cpp:51:9:51:9 | h indirection [a_] |
| simple.cpp:41:12:41:21 | call to user_input | simple.cpp:20:19:20:19 | a |
| simple.cpp:41:12:41:21 | call to user_input | simple.cpp:41:5:41:5 | setA output argument [a_] |
| simple.cpp:42:5:42:5 | setB output argument [b_] | simple.cpp:51:9:51:9 | (reference to) indirection [b_] |
| simple.cpp:42:5:42:5 | setB output argument [b_] | simple.cpp:51:9:51:9 | h indirection [b_] |
| simple.cpp:42:12:42:21 | call to user_input | simple.cpp:21:19:21:19 | b |
| simple.cpp:42:12:42:21 | call to user_input | simple.cpp:42:5:42:5 | setB output argument [b_] |
| simple.cpp:45:9:45:9 | (reference to) indirection [a_] | simple.cpp:26:15:26:15 | f indirection [a_] |
| simple.cpp:48:9:48:9 | (reference to) indirection [b_] | simple.cpp:26:15:26:15 | f indirection [b_] |
| simple.cpp:51:9:51:9 | (reference to) indirection [a_] | simple.cpp:26:15:26:15 | f indirection [a_] |
| simple.cpp:51:9:51:9 | (reference to) indirection [b_] | simple.cpp:26:15:26:15 | f indirection [b_] |
| simple.cpp:45:9:45:9 | f indirection [a_] | simple.cpp:26:15:26:15 | f indirection [a_] |
| 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:11:65:20 | call to user_input | simple.cpp:65:5:65:22 | ... = ... |
@@ -960,7 +962,7 @@ nodes
| A.cpp:98:12:98:18 | new | semmle.label | new |
| 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 | (C *)... indirection [a] | semmle.label | (C *)... indirection [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] |
| A.cpp:107:12:107:16 | a | semmle.label | a |
@@ -1158,6 +1160,7 @@ nodes
| 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:31:10:31:12 | raw indirection | semmle.label | raw 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:32:13:32:18 | buffer indirection | semmle.label | buffer indirection |
@@ -1166,7 +1169,7 @@ nodes
| 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:21 | ... = ... | semmle.label | ... = ... |
| aliasing.cpp:13:5:13:6 | (reference dereference) indirection [post update] [m1] | semmle.label | (reference dereference) indirection [post update] [m1] |
| 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] |
@@ -1334,15 +1337,15 @@ nodes
| by_reference.cpp:44:26:44:29 | this indirection [a] | semmle.label | this indirection [a] |
| by_reference.cpp:50:3:50:3 | setDirectly output argument [a] | semmle.label | setDirectly output argument [a] |
| by_reference.cpp:50:17:50:26 | call to user_input | semmle.label | call to user_input |
| by_reference.cpp:51:8:51:8 | (const S)... indirection [a] | semmle.label | (const S)... indirection [a] |
| by_reference.cpp:51:8:51:8 | s indirection [a] | semmle.label | s indirection [a] |
| by_reference.cpp:51:10:51:20 | call to getDirectly | semmle.label | call to getDirectly |
| by_reference.cpp:56:3:56:3 | setIndirectly output argument [a] | semmle.label | setIndirectly output argument [a] |
| by_reference.cpp:56:19:56:28 | call to user_input | semmle.label | call to user_input |
| by_reference.cpp:57:8:57:8 | (const S)... indirection [a] | semmle.label | (const S)... indirection [a] |
| by_reference.cpp:57:8:57:8 | s indirection [a] | semmle.label | s indirection [a] |
| by_reference.cpp:57:10:57:22 | call to getIndirectly | semmle.label | call to getIndirectly |
| by_reference.cpp:62:3:62:3 | setThroughNonMember output argument [a] | semmle.label | setThroughNonMember output argument [a] |
| by_reference.cpp:62:25:62:34 | call to user_input | semmle.label | call to user_input |
| by_reference.cpp:63:8:63:8 | (const S)... indirection [a] | semmle.label | (const S)... indirection [a] |
| by_reference.cpp:63:8:63:8 | s indirection [a] | semmle.label | s indirection [a] |
| by_reference.cpp:63:10:63:28 | call to getThroughNonMember | semmle.label | call to getThroughNonMember |
| by_reference.cpp:68:17:68:18 | nonMemberSetA output argument [a] | semmle.label | nonMemberSetA output argument [a] |
| by_reference.cpp:68:21:68:30 | call to user_input | semmle.label | call to user_input |
@@ -1352,7 +1355,7 @@ nodes
| 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:24 | ... = ... | semmle.label | ... = ... |
| by_reference.cpp:88:9:88:9 | (reference dereference) indirection [post update] [a] | semmle.label | (reference dereference) indirection [post update] [a] |
| 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 |
@@ -1448,11 +1451,11 @@ nodes
| complex.cpp:12:22:12:27 | ... = ... | semmle.label | ... = ... |
| complex.cpp:40:17:40:17 | b indirection [inner, f, a_] | semmle.label | b indirection [inner, f, a_] |
| complex.cpp:40:17:40:17 | b indirection [inner, f, b_] | semmle.label | b indirection [inner, f, b_] |
| complex.cpp:42:8:42:8 | (reference dereference) indirection [inner, f, a_] | semmle.label | (reference dereference) indirection [inner, f, a_] |
| complex.cpp:42:8:42:8 | b indirection [inner, f, a_] | semmle.label | b indirection [inner, f, a_] |
| complex.cpp:42:10:42:14 | inner indirection [f, a_] | semmle.label | inner indirection [f, a_] |
| complex.cpp:42:16:42:16 | f indirection [a_] | semmle.label | f indirection [a_] |
| complex.cpp:42:18:42:18 | call to a | semmle.label | call to a |
| complex.cpp:43:8:43:8 | (reference dereference) indirection [inner, f, b_] | semmle.label | (reference dereference) indirection [inner, f, b_] |
| complex.cpp:43:8:43:8 | b indirection [inner, f, b_] | semmle.label | b indirection [inner, f, b_] |
| 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 |
@@ -1480,20 +1483,21 @@ nodes
| 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 | 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 | (reference to) indirection [inner, f, a_] | semmle.label | (reference to) indirection [inner, f, a_] |
| complex.cpp:62:7:62:8 | (reference to) indirection [inner, f, b_] | semmle.label | (reference to) indirection [inner, f, b_] |
| complex.cpp:65:7:65:8 | (reference to) indirection [inner, f, a_] | semmle.label | (reference to) indirection [inner, f, a_] |
| complex.cpp:65:7:65:8 | (reference to) indirection [inner, f, b_] | semmle.label | (reference to) indirection [inner, f, b_] |
| complex.cpp:59:7:59:8 | b1 indirection [inner, f, a_] | semmle.label | b1 indirection [inner, f, a_] |
| complex.cpp:62:7:62:8 | b2 indirection [inner, f, b_] | semmle.label | b2 indirection [inner, f, b_] |
| 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 | (reference dereference) indirection [post update] [p indirection] | semmle.label | (reference dereference) indirection [post update] [p indirection] |
| conflated.cpp:10:7:10:7 | 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 | (reference dereference) indirection [p indirection] | semmle.label | (reference dereference) indirection [p indirection] |
| conflated.cpp:11:9:11:10 | ra indirection [p indirection] | semmle.label | ra indirection [p indirection] |
| conflated.cpp:11:12:11:12 | p indirection | semmle.label | p indirection |
| conflated.cpp:11:12:11:12 | p indirection | semmle.label | 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:20:8:20:10 | raw indirection | semmle.label | raw indirection |
| conflated.cpp:20:8:20:10 | raw indirection | semmle.label | raw indirection |
| 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 |
@@ -1542,9 +1546,9 @@ nodes
| 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_] |
| constructors.cpp:28:10:28:10 | (reference dereference) indirection [a_] | semmle.label | (reference dereference) indirection [a_] |
| constructors.cpp:28:10:28:10 | f indirection [a_] | semmle.label | f indirection [a_] |
| constructors.cpp:28:12:28:12 | call to a | semmle.label | call to a |
| constructors.cpp:29:10:29:10 | (reference dereference) indirection [b_] | semmle.label | (reference dereference) indirection [b_] |
| constructors.cpp:29:10:29:10 | f indirection [b_] | semmle.label | f indirection [b_] |
| constructors.cpp:29:12:29:12 | call to b | semmle.label | call to b |
| constructors.cpp:34:9:34:9 | call to Foo [a_] | semmle.label | call to Foo [a_] |
| constructors.cpp:34:11:34:20 | call to user_input | semmle.label | call to user_input |
@@ -1554,10 +1558,10 @@ nodes
| constructors.cpp:36:9:36:9 | call to Foo [b_] | semmle.label | call to Foo [b_] |
| constructors.cpp:36:11:36:20 | call to user_input | semmle.label | call to user_input |
| constructors.cpp:36:25:36:34 | call to user_input | semmle.label | call to user_input |
| constructors.cpp:40:9:40:9 | (reference to) indirection [a_] | semmle.label | (reference to) indirection [a_] |
| constructors.cpp:43:9:43:9 | (reference to) indirection [b_] | semmle.label | (reference to) indirection [b_] |
| constructors.cpp:46:9:46:9 | (reference to) indirection [a_] | semmle.label | (reference to) indirection [a_] |
| constructors.cpp:46:9:46:9 | (reference to) indirection [b_] | semmle.label | (reference to) indirection [b_] |
| constructors.cpp:40:9:40:9 | f indirection [a_] | semmle.label | f indirection [a_] |
| constructors.cpp:43:9:43:9 | g indirection [b_] | semmle.label | g indirection [b_] |
| 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:44 | ... = ... | semmle.label | ... = ... |
| qualifiers.cpp:9:36:9:36 | this indirection [post update] [a] | semmle.label | this indirection [post update] [a] |
@@ -1566,7 +1570,7 @@ nodes
| 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:65 | ... = ... | semmle.label | ... = ... |
| qualifiers.cpp:13:57:13:57 | (reference dereference) indirection [post update] [a] | semmle.label | (reference dereference) indirection [post update] [a] |
| 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] |
@@ -1651,9 +1655,9 @@ nodes
| simple.cpp:21:24:21:29 | ... = ... | semmle.label | ... = ... |
| simple.cpp:26:15:26:15 | f indirection [a_] | semmle.label | f indirection [a_] |
| simple.cpp:26:15:26:15 | f indirection [b_] | semmle.label | f indirection [b_] |
| simple.cpp:28:10:28:10 | (reference dereference) indirection [a_] | semmle.label | (reference dereference) indirection [a_] |
| simple.cpp:28:10:28:10 | f indirection [a_] | semmle.label | f indirection [a_] |
| simple.cpp:28:12:28:12 | call to a | semmle.label | call to a |
| simple.cpp:29:10:29:10 | (reference dereference) indirection [b_] | semmle.label | (reference dereference) indirection [b_] |
| simple.cpp:29:10:29:10 | f indirection [b_] | semmle.label | f indirection [b_] |
| simple.cpp:29:12:29:12 | call to b | semmle.label | call to b |
| simple.cpp:39:5:39:5 | setA output argument [a_] | semmle.label | setA output argument [a_] |
| simple.cpp:39:12:39:21 | call to user_input | semmle.label | call to user_input |
@@ -1663,10 +1667,10 @@ nodes
| simple.cpp:41:12:41:21 | call to user_input | semmle.label | call to user_input |
| simple.cpp:42:5:42:5 | setB output argument [b_] | semmle.label | setB output argument [b_] |
| simple.cpp:42:12:42:21 | call to user_input | semmle.label | call to user_input |
| simple.cpp:45:9:45:9 | (reference to) indirection [a_] | semmle.label | (reference to) indirection [a_] |
| simple.cpp:48:9:48:9 | (reference to) indirection [b_] | semmle.label | (reference to) indirection [b_] |
| simple.cpp:51:9:51:9 | (reference to) indirection [a_] | semmle.label | (reference to) indirection [a_] |
| simple.cpp:51:9:51:9 | (reference to) indirection [b_] | semmle.label | (reference to) indirection [b_] |
| simple.cpp:45:9:45:9 | f indirection [a_] | semmle.label | f indirection [a_] |
| 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: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 |
@@ -1757,11 +1761,11 @@ subpaths
| 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:51:8:51:8 | (const 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: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 | (const 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: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 | (const 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: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: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 |
@@ -1770,17 +1774,17 @@ subpaths
| complex.cpp:54:19:54: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:54:12:54:12 | setB output argument [b_] |
| complex.cpp:55:19:55:28 | call to user_input | complex.cpp:11:17:11:17 | a | complex.cpp:11:22:11:23 | this indirection [post update] [a_] | complex.cpp:55:12:55:12 | setA output argument [a_] |
| 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 | (reference dereference) 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 | (reference dereference) 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: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 | (reference dereference) indirection [post update] [a] | qualifiers.cpp:37:19:37:35 | referenceSetA output argument [a] |
| simple.cpp:28:10:28:10 | (reference dereference) 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 | (reference dereference) 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 |
| 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] |
| 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_] |
| simple.cpp:40:12:40:21 | call to user_input | simple.cpp:21:19:21:19 | b | simple.cpp:21:24:21:25 | this indirection [post update] [b_] | simple.cpp:40:5:40:5 | setB output argument [b_] |
| simple.cpp:41:12:41: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:41:5:41:5 | setA output argument [a_] |
@@ -1834,6 +1838,7 @@ subpaths
| D.cpp:64:25:64:28 | elem | D.cpp:56:15:56:24 | new | D.cpp:64:25:64:28 | elem | elem flows from $@ | D.cpp:56:15:56:24 | new | new |
| E.cpp:21:18:21:23 | buffer indirection | E.cpp:30:21:30:33 | argument_source output argument | E.cpp:21:18:21:23 | buffer indirection | buffer indirection flows from $@ | E.cpp:30:21:30:33 | argument_source output argument | argument_source output argument |
| E.cpp:31:10:31:12 | raw indirection | E.cpp:28:21:28:23 | argument_source output argument | E.cpp:31:10:31:12 | raw indirection | raw indirection flows from $@ | E.cpp:28:21:28:23 | argument_source output argument | argument_source output argument |
| E.cpp:31:10:31:12 | raw indirection | E.cpp:28:21:28:23 | argument_source output argument | E.cpp:31:10:31:12 | raw indirection | raw indirection flows from $@ | E.cpp:28:21:28:23 | argument_source output argument | argument_source output argument |
| E.cpp:32:13:32:18 | buffer indirection | E.cpp:29:21:29:29 | argument_source output argument | E.cpp:32:13:32:18 | buffer indirection | buffer indirection flows from $@ | E.cpp:29:21:29:29 | argument_source output argument | argument_source output argument |
| aliasing.cpp:29:11:29:12 | m1 | aliasing.cpp:9:11:9:20 | call to user_input | aliasing.cpp:29:11:29:12 | m1 | m1 flows from $@ | aliasing.cpp:9:11:9:20 | call to user_input | call to user_input |
| aliasing.cpp:30:11:30:12 | m1 | aliasing.cpp:13:10:13:19 | call to user_input | aliasing.cpp:30:11:30:12 | m1 | m1 flows from $@ | aliasing.cpp:13:10:13:19 | call to user_input | call to user_input |
@@ -1885,6 +1890,7 @@ subpaths
| conflated.cpp:11:8:11:12 | * ... | conflated.cpp:10:11:10:20 | call to user_input | conflated.cpp:11:8:11:12 | * ... | * ... flows from $@ | conflated.cpp:10:11:10:20 | call to user_input | call to user_input |
| conflated.cpp:20:8:20:10 | raw indirection | conflated.cpp:19:19:19:21 | argument_source output argument | conflated.cpp:20:8:20:10 | raw indirection | raw indirection flows from $@ | conflated.cpp:19:19:19:21 | argument_source output argument | argument_source output argument |
| conflated.cpp:20:8:20:10 | raw indirection | conflated.cpp:19:19:19:21 | argument_source output argument | conflated.cpp:20:8:20:10 | raw indirection | raw indirection flows from $@ | conflated.cpp:19:19:19:21 | argument_source output argument | argument_source output argument |
| conflated.cpp:20:8:20:10 | raw indirection | conflated.cpp:19:19:19:21 | argument_source output argument | conflated.cpp:20:8:20:10 | raw indirection | raw indirection flows from $@ | conflated.cpp:19:19:19:21 | argument_source output argument | argument_source output argument |
| conflated.cpp:30:12:30:12 | x | conflated.cpp:29:11:29:20 | call to user_input | conflated.cpp:30:12:30:12 | x | x flows from $@ | conflated.cpp:29:11:29:20 | call to user_input | call to user_input |
| conflated.cpp:37:12:37:12 | x | conflated.cpp:36:11:36:20 | call to user_input | conflated.cpp:37:12:37:12 | x | x flows from $@ | conflated.cpp:36:11:36:20 | call to user_input | call to user_input |
| conflated.cpp:55:18:55:18 | y | conflated.cpp:54:17:54:26 | call to user_input | conflated.cpp:55:18:55:18 | y | y flows from $@ | conflated.cpp:54:17:54:26 | call to user_input | call to user_input |

View File

@@ -1,150 +1 @@
| format.cpp:57:17:57:27 | // $ ast,ir | Missing result:ir= |
| format.cpp:62:17:62:27 | // $ ast,ir | Missing result:ir= |
| format.cpp:67:17:67:27 | // $ ast,ir | Missing result:ir= |
| format.cpp:72:17:72:27 | // $ ast,ir | Missing result:ir= |
| format.cpp:83:17:83:27 | // $ ast,ir | Missing result:ir= |
| format.cpp:88:17:88:27 | // $ ast,ir | Missing result:ir= |
| format.cpp:94:17:94:50 | // $ ast,ir // tainted (debatable) | Missing result:ir= |
| format.cpp:100:17:100:27 | // $ ast,ir | Missing result:ir= |
| format.cpp:105:17:105:27 | // $ ast,ir | Missing result:ir= |
| format.cpp:110:18:110:28 | // $ ast,ir | Missing result:ir= |
| format.cpp:115:17:115:27 | // $ ast,ir | Missing result:ir= |
| format.cpp:136:17:136:27 | // $ ast,ir | Missing result:ir= |
| smart_pointer.cpp:13:14:13:24 | // $ ast,ir | Missing result:ir= |
| smart_pointer.cpp:25:14:25:24 | // $ ast,ir | Missing result:ir= |
| smart_pointer.cpp:38:14:38:24 | // $ ast,ir | Missing result:ir= |
| smart_pointer.cpp:46:14:46:24 | // $ ast,ir | Missing result:ir= |
| string.cpp:31:11:31:21 | // $ ast,ir | Missing result:ir= |
| string.cpp:57:12:57:22 | // $ ast,ir | Missing result:ir= |
| string.cpp:71:12:71:22 | // $ ast,ir | Missing result:ir= |
| string.cpp:93:13:93:23 | // $ ast,ir | Missing result:ir= |
| string.cpp:94:13:94:23 | // $ ast,ir | Missing result:ir= |
| string.cpp:95:13:95:23 | // $ ast,ir | Missing result:ir= |
| string.cpp:114:13:114:23 | // $ ast,ir | Missing result:ir= |
| string.cpp:115:13:115:23 | // $ ast,ir | Missing result:ir= |
| string.cpp:159:13:159:23 | // $ ast,ir | Missing result:ir= |
| string.cpp:163:13:163:23 | // $ ast,ir | Missing result:ir= |
| string.cpp:168:13:168:23 | // $ ast,ir | Missing result:ir= |
| string.cpp:172:13:172:23 | // $ ast,ir | Missing result:ir= |
| string.cpp:177:13:177:23 | // $ ast,ir | Missing result:ir= |
| string.cpp:185:14:185:24 | // $ ast,ir | Missing result:ir= |
| string.cpp:200:12:200:22 | // $ ast,ir | Missing result:ir= |
| string.cpp:203:12:203:22 | // $ ast,ir | Missing result:ir= |
| string.cpp:206:12:206:32 | // $ SPURIOUS: ast,ir | Fixed spurious result:ir= |
| string.cpp:221:12:221:22 | // $ ast,ir | Missing result:ir= |
| string.cpp:225:12:225:22 | // $ ast,ir | Missing result:ir= |
| string.cpp:229:12:229:22 | // $ ast,ir | Missing result:ir= |
| string.cpp:244:12:244:22 | // $ ast,ir | Missing result:ir= |
| string.cpp:248:12:248:22 | // $ ast,ir | Missing result:ir= |
| string.cpp:252:12:252:22 | // $ ast,ir | Missing result:ir= |
| string.cpp:265:12:265:22 | // $ ast,ir | Missing result:ir= |
| string.cpp:275:12:275:22 | // $ ast,ir | Missing result:ir= |
| string.cpp:277:12:277:22 | // $ ast,ir | Missing result:ir= |
| string.cpp:282:12:282:22 | // $ ast,ir | Missing result:ir= |
| string.cpp:283:12:283:32 | // $ SPURIOUS: ast,ir | Fixed spurious result:ir= |
| string.cpp:284:12:284:22 | // $ ast,ir | Missing result:ir= |
| string.cpp:285:12:285:32 | // $ SPURIOUS: ast,ir | Fixed spurious result:ir= |
| string.cpp:293:12:293:22 | // $ ast,ir | Missing result:ir= |
| string.cpp:294:12:294:22 | // $ ast,ir | Missing result:ir= |
| string.cpp:295:12:295:22 | // $ ast,ir | Missing result:ir= |
| string.cpp:301:12:301:32 | // $ SPURIOUS: ast,ir | Fixed spurious result:ir= |
| string.cpp:303:12:303:22 | // $ ast,ir | Missing result:ir= |
| string.cpp:340:11:340:21 | // $ ast,ir | Missing result:ir= |
| string.cpp:341:11:341:21 | // $ ast,ir | Missing result:ir= |
| string.cpp:342:11:342:21 | // $ ast,ir | Missing result:ir= |
| string.cpp:350:13:350:23 | // $ ast,ir | Missing result:ir= |
| string.cpp:364:13:364:23 | // $ ast,ir | Missing result:ir= |
| string.cpp:437:12:437:22 | // $ ast,ir | Missing result:ir= |
| string.cpp:450:12:450:22 | // $ ast,ir | Missing result:ir= |
| string.cpp:463:12:463:22 | // $ ast,ir | Missing result:ir= |
| string.cpp:466:13:466:23 | // $ ast,ir | Missing result:ir= |
| string.cpp:479:12:479:22 | // $ ast,ir | Missing result:ir= |
| string.cpp:482:13:482:23 | // $ ast,ir | Missing result:ir= |
| string.cpp:495:12:495:22 | // $ ast,ir | Missing result:ir= |
| string.cpp:498:13:498:33 | // $ SPURIOUS: ast,ir | Fixed spurious result:ir= |
| string.cpp:511:12:511:22 | // $ ast,ir | Missing result:ir= |
| string.cpp:513:12:513:22 | // $ ast,ir | Missing result:ir= |
| string.cpp:541:12:541:22 | // $ ast,ir | Missing result:ir= |
| string.cpp:542:12:542:22 | // $ ast,ir | Missing result:ir= |
| string.cpp:543:12:543:22 | // $ ast,ir | Missing result:ir= |
| string.cpp:544:12:544:22 | // $ ast,ir | Missing result:ir= |
| string.cpp:561:12:561:22 | // $ ast,ir | Missing result:ir= |
| string.cpp:562:12:562:22 | // $ ast,ir | Missing result:ir= |
| string.cpp:563:12:563:22 | // $ ast,ir | Missing result:ir= |
| string.cpp:564:12:564:32 | // $ SPURIOUS: ast,ir | Fixed spurious result:ir= |
| stringstream.cpp:38:13:38:23 | // $ ast,ir | Missing result:ir= |
| stringstream.cpp:39:13:39:23 | // $ ast,ir | Missing result:ir= |
| stringstream.cpp:40:13:40:23 | // $ ast,ir | Missing result:ir= |
| stringstream.cpp:41:13:41:23 | // $ ast,ir | Missing result:ir= |
| stringstream.cpp:52:13:52:23 | // $ ast,ir | Missing result:ir= |
| stringstream.cpp:53:13:53:33 | // $ SPURIOUS: ast,ir | Fixed spurious result:ir= |
| stringstream.cpp:59:13:59:23 | // $ ast,ir | Missing result:ir= |
| stringstream.cpp:60:14:60:24 | // $ ast,ir | Missing result:ir= |
| stringstream.cpp:66:14:66:24 | // $ ast,ir | Missing result:ir= |
| stringstream.cpp:67:14:67:24 | // $ ast,ir | Missing result:ir= |
| stringstream.cpp:81:13:81:23 | // $ ast,ir | Missing result:ir= |
| stringstream.cpp:103:13:103:23 | // $ ast,ir | Missing result:ir= |
| stringstream.cpp:105:13:105:23 | // $ ast,ir | Missing result:ir= |
| stringstream.cpp:107:13:107:23 | // $ ast,ir | Missing result:ir= |
| stringstream.cpp:120:13:120:23 | // $ ast,ir | Missing result:ir= |
| stringstream.cpp:121:13:121:33 | // $ SPURIOUS: ast,ir | Fixed spurious result:ir= |
| stringstream.cpp:122:13:122:23 | // $ ast,ir | Missing result:ir= |
| stringstream.cpp:123:13:123:33 | // $ SPURIOUS: ast,ir | Fixed spurious result:ir= |
| stringstream.cpp:149:12:149:22 | // $ ast,ir | Missing result:ir= |
| stringstream.cpp:150:12:150:22 | // $ ast,ir | Missing result:ir= |
| stringstream.cpp:151:12:151:22 | // $ ast,ir | Missing result:ir= |
| stringstream.cpp:239:12:239:22 | // $ ast,ir | Missing result:ir= |
| stringstream.cpp:240:12:240:32 | // $ SPURIOUS: ast,ir | Fixed spurious result:ir= |
| stringstream.cpp:247:12:247:22 | // $ ast,ir | Missing result:ir= |
| stringstream.cpp:248:12:248:32 | // $ SPURIOUS: ast,ir | Fixed spurious result:ir= |
| stringstream.cpp:251:12:251:22 | // $ ast,ir | Missing result:ir= |
| stringstream.cpp:252:12:252:22 | // $ ast,ir | Missing result:ir= |
| stringstream.cpp:267:13:267:23 | // $ ast,ir | Missing result:ir= |
| taint.cpp:173:17:173:27 | // $ ast,ir | Missing result:ir= |
| taint.cpp:553:14:553:51 | // $ ast=550:24 ir SPURIOUS: ast=551:6 | Missing result:ir= |
| vector.cpp:52:12:52:22 | // $ ast,ir | Missing result:ir= |
| vector.cpp:58:12:58:22 | // $ ast,ir | Missing result:ir= |
| vector.cpp:64:12:64:22 | // $ ast,ir | Missing result:ir= |
| vector.cpp:70:12:70:22 | // $ ast,ir | Missing result:ir= |
| vector.cpp:75:12:75:22 | // $ ast,ir | Missing result:ir= |
| vector.cpp:83:12:83:22 | // $ ast,ir | Missing result:ir= |
| vector.cpp:97:12:97:22 | // $ ast,ir | Missing result:ir= |
| vector.cpp:109:12:109:22 | // $ ast,ir | Missing result:ir= |
| vector.cpp:112:12:112:22 | // $ ast,ir | Missing result:ir= |
| vector.cpp:117:12:117:32 | // $ SPURIOUS: ast,ir | Fixed spurious result:ir= |
| vector.cpp:118:12:118:22 | // $ ast,ir | Missing result:ir= |
| vector.cpp:119:12:119:22 | // $ ast,ir | Missing result:ir= |
| vector.cpp:120:12:120:32 | // $ SPURIOUS: ast,ir | Fixed spurious result:ir= |
| vector.cpp:130:12:130:22 | // $ ast,ir | Missing result:ir= |
| vector.cpp:131:12:131:22 | // $ ast,ir | Missing result:ir= |
| vector.cpp:132:12:132:22 | // $ ast,ir | Missing result:ir= |
| vector.cpp:139:12:139:32 | // $ SPURIOUS: ast,ir | Fixed spurious result:ir= |
| vector.cpp:140:12:140:22 | // $ ast,ir | Missing result:ir= |
| vector.cpp:141:12:141:22 | // $ ast,ir | Missing result:ir= |
| vector.cpp:242:12:242:22 | // $ ast,ir | Missing result:ir= |
| vector.cpp:243:12:243:22 | // $ ast,ir | Missing result:ir= |
| vector.cpp:258:13:258:23 | // $ ast,ir | Missing result:ir= |
| vector.cpp:259:13:259:23 | // $ ast,ir | Missing result:ir= |
| vector.cpp:260:13:260:23 | // $ ast,ir | Missing result:ir= |
| vector.cpp:261:13:261:23 | // $ ast,ir | Missing result:ir= |
| vector.cpp:273:13:273:23 | // $ ast,ir | Missing result:ir= |
| vector.cpp:274:13:274:23 | // $ ast,ir | Missing result:ir= |
| vector.cpp:275:13:275:23 | // $ ast,ir | Missing result:ir= |
| vector.cpp:285:12:285:22 | // $ ast,ir | Missing result:ir= |
| vector.cpp:290:12:290:22 | // $ ast,ir | Missing result:ir= |
| vector.cpp:309:11:309:21 | // $ ast,ir | Missing result:ir= |
| vector.cpp:312:11:312:21 | // $ ast,ir | Missing result:ir= |
| vector.cpp:324:12:324:22 | // $ ast,ir | Missing result:ir= |
| vector.cpp:326:12:326:22 | // $ ast,ir | Missing result:ir= |
| vector.cpp:357:12:357:22 | // $ ast,ir | Missing result:ir= |
| vector.cpp:392:7:392:8 | v9 | Unexpected result: ir= |
| vector.cpp:392:12:392:65 | // $ ast=330:10 ir=330:10 SPURIOUS: ast=389:8 ir=389:8 | Fixed spurious result:ir=389:8 |
| vector.cpp:392:12:392:65 | // $ ast=330:10 ir=330:10 SPURIOUS: ast=389:8 ir=389:8 | Missing result:ir=330:10 |
| vector.cpp:400:13:400:23 | // $ ast,ir | Missing result:ir= |
| vector.cpp:429:14:429:24 | // $ ast,ir | Missing result:ir= |
| vector.cpp:473:12:473:22 | // $ ast,ir | Missing result:ir= |
| vector.cpp:482:14:482:24 | // $ ast,ir | Missing result:ir= |
| vector.cpp:485:14:485:24 | // $ ast,ir | Missing result:ir= |
| vector.cpp:486:13:486:23 | // $ ast,ir | Missing result:ir= |
| vector.cpp:494:12:494:22 | // $ ast,ir | Missing result:ir= |
| vector.cpp:497:12:497:22 | // $ ast,ir | Missing result:ir= |