mirror of
https://github.com/github/codeql.git
synced 2026-04-30 19:26:02 +02:00
C++: constrain indirect out node to constructors
This commit is contained in:
@@ -740,6 +740,7 @@ private predicate exprNodeShouldBeIndirectOperand(IndirectOperand node, Expr e,
|
||||
|
||||
private predicate exprNodeShouldBeIndirectOutNode(IndirectArgumentOutNode node, Expr e) {
|
||||
exists(CallInstruction call |
|
||||
call.getStaticCallTarget() instanceof Constructor and
|
||||
e = call.getConvertedResultExpression() and
|
||||
call.getThisArgumentOperand() = node.getAddressOperand()
|
||||
)
|
||||
|
||||
@@ -19,9 +19,9 @@ edges
|
||||
| A.cpp:49:10:49:10 | Load indirection [c] | A.cpp:49:13:49:13 | c |
|
||||
| A.cpp:49:10:49:10 | Load indirection [c] | A.cpp:49:13:49:13 | c |
|
||||
| A.cpp:49:13:49:13 | c | A.cpp:49:10:49:13 | c |
|
||||
| A.cpp:55:5:55:5 | call to set [c] | A.cpp:56:10:56:10 | b indirection [c] |
|
||||
| A.cpp:55:5:55:5 | set output argument [c] | A.cpp:56:10:56:10 | b indirection [c] |
|
||||
| A.cpp:55:12:55:19 | new | A.cpp:27:17:27:17 | c |
|
||||
| A.cpp:55:12:55:19 | new | A.cpp:55:5:55:5 | call to set [c] |
|
||||
| A.cpp:55:12:55:19 | new | A.cpp:55:5:55:5 | set output argument [c] |
|
||||
| A.cpp:55:12:55:19 | new | A.cpp:55:12:55:19 | new |
|
||||
| A.cpp:56:10:56:10 | b indirection [c] | A.cpp:28:8:28:10 | this indirection [c] |
|
||||
| A.cpp:56:10:56:10 | b indirection [c] | A.cpp:56:10:56:17 | call to get |
|
||||
@@ -53,9 +53,9 @@ edges
|
||||
| A.cpp:81:21:81:21 | c | A.cpp:81:10:81:15 | Call indirection [c] |
|
||||
| A.cpp:81:21:81:21 | c | A.cpp:85:26:85:26 | c |
|
||||
| A.cpp:85:26:85:26 | c | A.cpp:90:15:90:15 | c |
|
||||
| A.cpp:90:7:90:8 | call to set [c] | A.cpp:85:9:85:14 | VariableAddress indirection [c] |
|
||||
| A.cpp:90:7:90:8 | set output argument [c] | A.cpp:85:9:85:14 | VariableAddress indirection [c] |
|
||||
| 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 | call to set [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 | Store |
|
||||
| A.cpp:100:5:100:13 | Store | A.cpp:100:9:100:9 | Load indirection [post update] [a] |
|
||||
| A.cpp:100:9:100:9 | Load indirection [post update] [a] | A.cpp:101:8:101:9 | c1 indirection [a] |
|
||||
@@ -70,9 +70,9 @@ edges
|
||||
| A.cpp:120:12:120:13 | Load indirection [a] | A.cpp:120:16:120:16 | a |
|
||||
| A.cpp:120:12:120:13 | Load indirection [a] | A.cpp:120:16:120:16 | a |
|
||||
| A.cpp:120:16:120:16 | a | A.cpp:120:12:120:16 | a |
|
||||
| A.cpp:126:5:126:5 | call to set [c] | A.cpp:131:8:131:8 | f7 output argument [c] |
|
||||
| A.cpp:126:5:126:5 | set output argument [c] | A.cpp:131:8:131:8 | f7 output argument [c] |
|
||||
| A.cpp:126:12:126:18 | new | A.cpp:27:17:27:17 | c |
|
||||
| A.cpp:126:12:126:18 | new | A.cpp:126:5:126:5 | call to set [c] |
|
||||
| A.cpp:126:12:126:18 | new | A.cpp:126:5:126:5 | set output argument [c] |
|
||||
| A.cpp:126:12:126:18 | new | A.cpp:126:12:126:18 | new |
|
||||
| A.cpp:131:8:131:8 | f7 output argument [c] | A.cpp:132:10:132:10 | Load indirection [c] |
|
||||
| A.cpp:132:10:132:10 | Load indirection [c] | A.cpp:132:10:132:13 | c |
|
||||
@@ -227,20 +227,20 @@ edges
|
||||
| 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 | Load indirection [post update] [box indirection, elem] | D.cpp:38:14:38:14 | b indirection [box indirection, elem] |
|
||||
| D.cpp:37:8:37:10 | call to setElem [elem] | D.cpp:37:8:37:10 | Load indirection [post update] [box indirection, elem] |
|
||||
| D.cpp:37:8:37:10 | setElem output argument [elem] | D.cpp:37:8:37:10 | Load 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 | call to setElem [elem] |
|
||||
| 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 | Store |
|
||||
| D.cpp:44:5:44:5 | call to getBox1 [box indirection, elem] | D.cpp:45:14:45:14 | b indirection [box indirection, 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:44:5:44:26 | Store | D.cpp:44:19:44:22 | Call indirection [post update] [elem] |
|
||||
| D.cpp:44:19:44:22 | Call indirection [post update] [elem] | D.cpp:44:5:44:5 | call to getBox1 [box indirection, elem] |
|
||||
| D.cpp:44:19:44:22 | Call 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 | call to getBox1 [box indirection, elem] | D.cpp:52:14:52:14 | b indirection [box indirection, elem] |
|
||||
| D.cpp:51:8:51:14 | call to setElem [elem] | D.cpp:51:5:51:5 | call to getBox1 [box indirection, elem] |
|
||||
| D.cpp:51:5:51:5 | getBox1 output argument [box indirection, elem] | D.cpp:52:14:52:14 | b indirection [box indirection, elem] |
|
||||
| D.cpp:51:8:51:14 | setElem output argument [elem] | D.cpp:51:5:51:5 | getBox1 output argument [box indirection, elem] |
|
||||
| D.cpp:51:27:51:27 | e | D.cpp:11:24:11:24 | e |
|
||||
| D.cpp:51:27:51:27 | e | D.cpp:51:8:51:14 | call to setElem [elem] |
|
||||
| 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 | Store |
|
||||
| D.cpp:58:5:58:12 | Load indirection [post update] [boxfield indirection, box indirection, elem] | D.cpp:59:5:59:7 | this indirection [boxfield indirection, box indirection, elem] |
|
||||
@@ -417,7 +417,7 @@ edges
|
||||
| by_reference.cpp:16:5:16:19 | Store | by_reference.cpp:16:11:16:11 | Load 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 | call to setDirectly [a] |
|
||||
| by_reference.cpp:20:23:20:27 | value | by_reference.cpp:20:5:20:8 | setDirectly output argument [a] |
|
||||
| by_reference.cpp:23:34:23:38 | value | by_reference.cpp:24:25:24:29 | value |
|
||||
| by_reference.cpp:24:25:24:29 | value | by_reference.cpp:11:48:11:52 | value |
|
||||
| by_reference.cpp:24:25:24:29 | value | by_reference.cpp:24:19:24:22 | nonMemberSetA output argument [a] |
|
||||
@@ -435,19 +435,19 @@ edges
|
||||
| by_reference.cpp:43:9:43:27 | this indirection [a] | by_reference.cpp:44:26:44:29 | this indirection [a] |
|
||||
| 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:43:9:43:27 | VariableAddress indirection |
|
||||
| by_reference.cpp:50:3:50:3 | call to setDirectly [a] | by_reference.cpp:51:8:51:8 | 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 | call to setDirectly [a] |
|
||||
| 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 | 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 | call to setIndirectly [a] | by_reference.cpp:57:8:57:8 | s indirection [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: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 | call to setIndirectly [a] |
|
||||
| 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 | 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 | call to setThroughNonMember [a] | by_reference.cpp:63:8:63:8 | s indirection [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: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 | call to setThroughNonMember [a] |
|
||||
| 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 | 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] |
|
||||
@@ -572,41 +572,41 @@ edges
|
||||
| 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 | call to setA [a_] | complex.cpp:53:12:53:12 | inner indirection [post update] [f, a_] |
|
||||
| complex.cpp:53:12:53:12 | call to setA [a_] | complex.cpp:53:12:53:12 | inner indirection [post update] [f, a_] |
|
||||
| complex.cpp:53:12:53:12 | call to setA [a_] | complex.cpp:53:12:53:12 | inner indirection [post update] [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: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 | call to setA [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 | call to setB [b_] | complex.cpp:54:12:54:12 | inner indirection [post update] [f, b_] |
|
||||
| complex.cpp:54:12:54:12 | call to setB [b_] | complex.cpp:54:12:54:12 | inner indirection [post update] [f, b_] |
|
||||
| complex.cpp:54:12:54:12 | call to setB [b_] | complex.cpp:54:12:54:12 | inner indirection [post update] [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: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 | call to setB [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 | call to setA [a_] | complex.cpp:55:12:55:12 | inner indirection [post update] [f, a_] |
|
||||
| complex.cpp:55:12:55:12 | call to setA [a_] | complex.cpp:55:12:55:12 | inner indirection [post update] [f, a_] |
|
||||
| complex.cpp:55:12:55:12 | call to setA [a_] | complex.cpp:55:12:55:12 | inner indirection [post update] [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: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 | call to setA [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 | call to setB [b_] | complex.cpp:56:12:56:12 | inner indirection [post update] [f, b_] |
|
||||
| complex.cpp:56:12:56:12 | call to setB [b_] | complex.cpp:56:12:56:12 | inner indirection [post update] [f, b_] |
|
||||
| complex.cpp:56:12:56:12 | call to setB [b_] | complex.cpp:56:12:56:12 | inner indirection [post update] [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: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 | call to setB [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_] |
|
||||
@@ -691,9 +691,9 @@ edges
|
||||
| qualifiers.cpp:12:49:12:64 | Store | qualifiers.cpp:12:56:12:56 | Load indirection [post update] [a] |
|
||||
| qualifiers.cpp:13:42:13:46 | value | qualifiers.cpp:13:51:13:65 | Store |
|
||||
| qualifiers.cpp:13:51:13:65 | Store | qualifiers.cpp:13:57:13:57 | (reference dereference) indirection [post update] [a] |
|
||||
| qualifiers.cpp:22:5:22:9 | call to getInner [inner indirection, a] | qualifiers.cpp:23:10:23:14 | outer indirection [inner indirection, 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 | Store | qualifiers.cpp:22:23:22:23 | Call indirection [post update] [a] |
|
||||
| qualifiers.cpp:22:23:22:23 | Call indirection [post update] [a] | qualifiers.cpp:22:5:22:9 | call to getInner [inner indirection, a] |
|
||||
| qualifiers.cpp:22:23:22:23 | Call 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 | Store |
|
||||
| qualifiers.cpp:23:10:23:14 | outer indirection [inner indirection, a] | qualifiers.cpp:23:16:23:20 | FieldAddress indirection [a] |
|
||||
| qualifiers.cpp:23:10:23:14 | outer indirection [inner indirection, a] | qualifiers.cpp:23:16:23:20 | Load indirection [a] |
|
||||
@@ -701,18 +701,18 @@ edges
|
||||
| qualifiers.cpp:23:16:23:20 | Load indirection [a] | qualifiers.cpp:23:23:23:23 | FieldAddress indirection |
|
||||
| qualifiers.cpp:23:16:23:20 | Load indirection [a] | qualifiers.cpp:23:23:23:23 | a |
|
||||
| qualifiers.cpp:23:23:23:23 | FieldAddress indirection | qualifiers.cpp:23:23:23:23 | a |
|
||||
| qualifiers.cpp:27:5:27:9 | call to getInner [inner indirection, a] | qualifiers.cpp:28:10:28:14 | outer indirection [inner indirection, a] |
|
||||
| qualifiers.cpp:27:11:27:18 | call to setA [a] | qualifiers.cpp:27:5:27:9 | call to getInner [inner indirection, a] |
|
||||
| qualifiers.cpp:27:5:27:9 | getInner output argument [inner indirection, a] | qualifiers.cpp:28:10:28:14 | outer indirection [inner indirection, a] |
|
||||
| qualifiers.cpp:27:11:27:18 | setA output argument [a] | qualifiers.cpp:27:5:27:9 | getInner output argument [inner indirection, a] |
|
||||
| qualifiers.cpp:27:28:27:37 | call to user_input | qualifiers.cpp:9:21:9:25 | value |
|
||||
| qualifiers.cpp:27:28:27:37 | call to user_input | qualifiers.cpp:27:11:27:18 | call to setA [a] |
|
||||
| qualifiers.cpp:27:28:27:37 | call to user_input | qualifiers.cpp:27:11:27:18 | setA output argument [a] |
|
||||
| qualifiers.cpp:28:10:28:14 | outer indirection [inner indirection, a] | qualifiers.cpp:28:16:28:20 | FieldAddress indirection [a] |
|
||||
| qualifiers.cpp:28:10:28:14 | outer indirection [inner indirection, a] | qualifiers.cpp:28:16:28:20 | Load indirection [a] |
|
||||
| qualifiers.cpp:28:16:28:20 | FieldAddress indirection [a] | qualifiers.cpp:28:16:28:20 | Load indirection [a] |
|
||||
| qualifiers.cpp:28:16:28:20 | Load indirection [a] | qualifiers.cpp:28:23:28:23 | FieldAddress indirection |
|
||||
| qualifiers.cpp:28:16:28:20 | Load indirection [a] | qualifiers.cpp:28:23:28:23 | a |
|
||||
| qualifiers.cpp:28:23:28:23 | FieldAddress indirection | qualifiers.cpp:28:23:28:23 | a |
|
||||
| qualifiers.cpp:32:17:32:21 | call to getInner [inner indirection, a] | qualifiers.cpp:33:10:33:14 | outer indirection [inner indirection, a] |
|
||||
| qualifiers.cpp:32:23:32:30 | pointerSetA output argument [a] | qualifiers.cpp:32:17:32:21 | call to getInner [inner indirection, a] |
|
||||
| qualifiers.cpp:32:17:32:21 | getInner output argument [inner indirection, a] | qualifiers.cpp:33:10:33:14 | outer indirection [inner indirection, a] |
|
||||
| qualifiers.cpp:32:23:32:30 | pointerSetA output argument [a] | qualifiers.cpp:32:17:32:21 | getInner output argument [inner indirection, a] |
|
||||
| qualifiers.cpp:32:35:32:44 | call to user_input | qualifiers.cpp:12:40:12:44 | value |
|
||||
| qualifiers.cpp:32:35:32:44 | call to user_input | qualifiers.cpp:32:23:32:30 | pointerSetA output argument [a] |
|
||||
| qualifiers.cpp:33:10:33:14 | outer indirection [inner indirection, a] | qualifiers.cpp:33:16:33:20 | FieldAddress indirection [a] |
|
||||
@@ -721,8 +721,8 @@ edges
|
||||
| qualifiers.cpp:33:16:33:20 | Load indirection [a] | qualifiers.cpp:33:23:33:23 | FieldAddress indirection |
|
||||
| qualifiers.cpp:33:16:33:20 | Load indirection [a] | qualifiers.cpp:33:23:33:23 | a |
|
||||
| qualifiers.cpp:33:23:33:23 | FieldAddress indirection | qualifiers.cpp:33:23:33:23 | a |
|
||||
| qualifiers.cpp:37:19:37:35 | referenceSetA output argument [a] | qualifiers.cpp:37:20:37:24 | call to getInner [inner indirection, a] |
|
||||
| qualifiers.cpp:37:20:37:24 | call to getInner [inner indirection, a] | qualifiers.cpp:38:10:38:14 | outer indirection [inner indirection, a] |
|
||||
| qualifiers.cpp:37:19:37:35 | referenceSetA output argument [a] | qualifiers.cpp:37:20:37:24 | getInner output argument [inner indirection, a] |
|
||||
| qualifiers.cpp:37:20:37:24 | getInner output argument [inner indirection, a] | qualifiers.cpp:38:10:38:14 | outer indirection [inner indirection, a] |
|
||||
| qualifiers.cpp:37:38:37:47 | call to user_input | qualifiers.cpp:13:42:13:46 | value |
|
||||
| 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 | FieldAddress indirection [a] |
|
||||
@@ -732,8 +732,8 @@ edges
|
||||
| qualifiers.cpp:38:16:38:20 | Load indirection [a] | qualifiers.cpp:38:23:38:23 | a |
|
||||
| qualifiers.cpp:38:23:38:23 | FieldAddress indirection | qualifiers.cpp:38:23:38:23 | a |
|
||||
| qualifiers.cpp:42:5:42:40 | Store | qualifiers.cpp:42:25:42:25 | * ... indirection [post update] [a] |
|
||||
| qualifiers.cpp:42:7:42:11 | call to getInner [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 | call to getInner [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 | Store |
|
||||
| qualifiers.cpp:43:10:43:14 | outer indirection [inner indirection, a] | qualifiers.cpp:43:16:43:20 | FieldAddress indirection [a] |
|
||||
| qualifiers.cpp:43:10:43:14 | outer indirection [inner indirection, a] | qualifiers.cpp:43:16:43:20 | Load indirection [a] |
|
||||
@@ -742,8 +742,8 @@ edges
|
||||
| qualifiers.cpp:43:16:43:20 | Load indirection [a] | qualifiers.cpp:43:23:43:23 | a |
|
||||
| qualifiers.cpp:43:23:43:23 | FieldAddress indirection | qualifiers.cpp:43:23:43:23 | a |
|
||||
| qualifiers.cpp:47:5:47:42 | Store | qualifiers.cpp:47:27:47:27 | Call indirection [post update] [a] |
|
||||
| qualifiers.cpp:47:6:47:11 | call to getInner [inner indirection, a] | qualifiers.cpp:48:10:48:14 | outer indirection [inner indirection, a] |
|
||||
| qualifiers.cpp:47:27:47:27 | Call indirection [post update] [a] | qualifiers.cpp:47:6:47:11 | call to getInner [inner indirection, 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 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 | Store |
|
||||
| qualifiers.cpp:48:10:48:14 | outer indirection [inner indirection, a] | qualifiers.cpp:48:16:48:20 | FieldAddress indirection [a] |
|
||||
| qualifiers.cpp:48:10:48:14 | outer indirection [inner indirection, a] | qualifiers.cpp:48:16:48:20 | Load indirection [a] |
|
||||
@@ -785,18 +785,18 @@ edges
|
||||
| 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 | call to setA [a_] | simple.cpp:45:9:45:9 | f indirection [a_] |
|
||||
| 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 | call to setA [a_] |
|
||||
| simple.cpp:40:5:40:5 | call to setB [b_] | simple.cpp:48:9:48:9 | g indirection [b_] |
|
||||
| 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 | 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 | call to setB [b_] |
|
||||
| simple.cpp:41:5:41:5 | call to setA [a_] | simple.cpp:51:9:51:9 | h indirection [a_] |
|
||||
| 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 | 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 | call to setA [a_] |
|
||||
| simple.cpp:42:5:42:5 | call to setB [b_] | simple.cpp:51:9:51:9 | h indirection [b_] |
|
||||
| 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 | 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 | call to setB [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 | 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_] |
|
||||
@@ -890,7 +890,7 @@ nodes
|
||||
| A.cpp:49:10:49:13 | c | semmle.label | c |
|
||||
| A.cpp:49:13:49:13 | c | semmle.label | c |
|
||||
| A.cpp:49:13:49:13 | c | semmle.label | c |
|
||||
| A.cpp:55:5:55:5 | call to set [c] | semmle.label | call to set [c] |
|
||||
| A.cpp:55:5:55:5 | set output argument [c] | semmle.label | set output argument [c] |
|
||||
| A.cpp:55:12:55:19 | new | semmle.label | new |
|
||||
| A.cpp:55:12:55:19 | new | semmle.label | new |
|
||||
| A.cpp:56:10:56:10 | b indirection [c] | semmle.label | b indirection [c] |
|
||||
@@ -920,7 +920,7 @@ nodes
|
||||
| A.cpp:81:21:81:21 | c | semmle.label | c |
|
||||
| A.cpp:85:9:85:14 | VariableAddress indirection [c] | semmle.label | VariableAddress indirection [c] |
|
||||
| A.cpp:85:26:85:26 | c | semmle.label | c |
|
||||
| A.cpp:90:7:90:8 | call to set [c] | semmle.label | call to set [c] |
|
||||
| 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:13 | Store | semmle.label | Store |
|
||||
@@ -935,7 +935,7 @@ nodes
|
||||
| A.cpp:120:12:120:16 | a | semmle.label | a |
|
||||
| A.cpp:120:16:120:16 | a | semmle.label | a |
|
||||
| A.cpp:120:16:120:16 | a | semmle.label | a |
|
||||
| A.cpp:126:5:126:5 | call to set [c] | semmle.label | call to set [c] |
|
||||
| A.cpp:126:5:126:5 | set output argument [c] | semmle.label | set output argument [c] |
|
||||
| A.cpp:126:12:126:18 | new | semmle.label | new |
|
||||
| A.cpp:126:12:126:18 | new | semmle.label | new |
|
||||
| A.cpp:131:8:131:8 | f7 output argument [c] | semmle.label | f7 output argument [c] |
|
||||
@@ -1082,17 +1082,17 @@ nodes
|
||||
| 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 | Load indirection [post update] [box indirection, elem] | semmle.label | Load indirection [post update] [box indirection, elem] |
|
||||
| D.cpp:37:8:37:10 | call to setElem [elem] | semmle.label | call to setElem [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 | call to getBox1 [box indirection, elem] | semmle.label | call to getBox1 [box indirection, elem] |
|
||||
| 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 | Store | semmle.label | Store |
|
||||
| D.cpp:44:19:44:22 | Call indirection [post update] [elem] | semmle.label | Call 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 | call to getBox1 [box indirection, elem] | semmle.label | call to getBox1 [box indirection, elem] |
|
||||
| D.cpp:51:8:51:14 | call to setElem [elem] | semmle.label | call to setElem [elem] |
|
||||
| D.cpp:51:5:51:5 | getBox1 output argument [box indirection, elem] | semmle.label | getBox1 output argument [box indirection, elem] |
|
||||
| D.cpp:51:8:51:14 | setElem output argument [elem] | semmle.label | setElem output argument [elem] |
|
||||
| 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 |
|
||||
@@ -1257,7 +1257,7 @@ nodes
|
||||
| by_reference.cpp:16:5:16:19 | Store | semmle.label | Store |
|
||||
| by_reference.cpp:16:11:16:11 | Load indirection [post update] [a] | semmle.label | Load indirection [post update] [a] |
|
||||
| by_reference.cpp:19:28:19:32 | value | semmle.label | value |
|
||||
| by_reference.cpp:20:5:20:8 | call to setDirectly [a] | semmle.label | call to setDirectly [a] |
|
||||
| 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 |
|
||||
| by_reference.cpp:23:34:23:38 | value | semmle.label | value |
|
||||
| by_reference.cpp:24:19:24:22 | nonMemberSetA output argument [a] | semmle.label | nonMemberSetA output argument [a] |
|
||||
@@ -1276,15 +1276,15 @@ nodes
|
||||
| by_reference.cpp:43:9:43:27 | VariableAddress indirection | semmle.label | VariableAddress indirection |
|
||||
| by_reference.cpp:43:9:43:27 | this indirection [a] | semmle.label | this indirection [a] |
|
||||
| by_reference.cpp:44:26:44:29 | this indirection [a] | semmle.label | this indirection [a] |
|
||||
| by_reference.cpp:50:3:50:3 | call to setDirectly [a] | semmle.label | call to setDirectly [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 | 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 | call to setIndirectly [a] | semmle.label | call to setIndirectly [a] |
|
||||
| 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 | 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 | call to setThroughNonMember [a] | semmle.label | call to setThroughNonMember [a] |
|
||||
| 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 | s indirection [a] | semmle.label | s indirection [a] |
|
||||
| by_reference.cpp:63:10:63:28 | call to getThroughNonMember | semmle.label | call to getThroughNonMember |
|
||||
@@ -1399,28 +1399,28 @@ nodes
|
||||
| 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 | call to setA [a_] | semmle.label | call to setA [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: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 | call to setB [b_] | semmle.label | call to setB [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: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 | call to setA [a_] | semmle.label | call to setA [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: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 | call to setB [b_] | semmle.label | call to setB [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: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_] |
|
||||
| complex.cpp:62:7:62:8 | b2 indirection [inner, f, b_] | semmle.label | b2 indirection [inner, f, b_] |
|
||||
@@ -1504,7 +1504,7 @@ nodes
|
||||
| qualifiers.cpp:13:42:13:46 | value | semmle.label | value |
|
||||
| qualifiers.cpp:13:51:13:65 | Store | semmle.label | Store |
|
||||
| qualifiers.cpp:13:57:13:57 | (reference dereference) indirection [post update] [a] | semmle.label | (reference dereference) indirection [post update] [a] |
|
||||
| qualifiers.cpp:22:5:22:9 | call to getInner [inner indirection, a] | semmle.label | call to getInner [inner indirection, 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 | Store | semmle.label | Store |
|
||||
| qualifiers.cpp:22:23:22:23 | Call indirection [post update] [a] | semmle.label | Call indirection [post update] [a] |
|
||||
| qualifiers.cpp:22:27:22:36 | call to user_input | semmle.label | call to user_input |
|
||||
@@ -1513,15 +1513,15 @@ nodes
|
||||
| qualifiers.cpp:23:16:23:20 | Load indirection [a] | semmle.label | Load indirection [a] |
|
||||
| qualifiers.cpp:23:23:23:23 | FieldAddress indirection | semmle.label | FieldAddress indirection |
|
||||
| qualifiers.cpp:23:23:23:23 | a | semmle.label | a |
|
||||
| qualifiers.cpp:27:5:27:9 | call to getInner [inner indirection, a] | semmle.label | call to getInner [inner indirection, a] |
|
||||
| qualifiers.cpp:27:11:27:18 | call to setA [a] | semmle.label | call to setA [a] |
|
||||
| qualifiers.cpp:27:5:27:9 | getInner output argument [inner indirection, a] | semmle.label | getInner output argument [inner indirection, a] |
|
||||
| qualifiers.cpp:27:11:27:18 | setA output argument [a] | semmle.label | setA output argument [a] |
|
||||
| qualifiers.cpp:27:28:27:37 | call to user_input | semmle.label | call to user_input |
|
||||
| qualifiers.cpp:28:10:28:14 | outer indirection [inner indirection, a] | semmle.label | outer indirection [inner indirection, a] |
|
||||
| qualifiers.cpp:28:16:28:20 | FieldAddress indirection [a] | semmle.label | FieldAddress indirection [a] |
|
||||
| qualifiers.cpp:28:16:28:20 | Load indirection [a] | semmle.label | Load indirection [a] |
|
||||
| qualifiers.cpp:28:23:28:23 | FieldAddress indirection | semmle.label | FieldAddress indirection |
|
||||
| qualifiers.cpp:28:23:28:23 | a | semmle.label | a |
|
||||
| qualifiers.cpp:32:17:32:21 | call to getInner [inner indirection, a] | semmle.label | call to getInner [inner indirection, a] |
|
||||
| qualifiers.cpp:32:17:32:21 | getInner output argument [inner indirection, a] | semmle.label | getInner output argument [inner indirection, a] |
|
||||
| qualifiers.cpp:32:23:32:30 | pointerSetA output argument [a] | semmle.label | pointerSetA output argument [a] |
|
||||
| qualifiers.cpp:32:35:32:44 | call to user_input | semmle.label | call to user_input |
|
||||
| qualifiers.cpp:33:10:33:14 | outer indirection [inner indirection, a] | semmle.label | outer indirection [inner indirection, a] |
|
||||
@@ -1530,7 +1530,7 @@ nodes
|
||||
| qualifiers.cpp:33:23:33:23 | FieldAddress indirection | semmle.label | FieldAddress indirection |
|
||||
| qualifiers.cpp:33:23:33:23 | a | semmle.label | a |
|
||||
| qualifiers.cpp:37:19:37:35 | referenceSetA output argument [a] | semmle.label | referenceSetA output argument [a] |
|
||||
| qualifiers.cpp:37:20:37:24 | call to getInner [inner indirection, a] | semmle.label | call to getInner [inner indirection, a] |
|
||||
| qualifiers.cpp:37:20:37:24 | getInner output argument [inner indirection, a] | semmle.label | getInner output argument [inner indirection, a] |
|
||||
| qualifiers.cpp:37:38:37:47 | call to user_input | semmle.label | call to user_input |
|
||||
| qualifiers.cpp:38:10:38:14 | outer indirection [inner indirection, a] | semmle.label | outer indirection [inner indirection, a] |
|
||||
| qualifiers.cpp:38:16:38:20 | FieldAddress indirection [a] | semmle.label | FieldAddress indirection [a] |
|
||||
@@ -1538,7 +1538,7 @@ nodes
|
||||
| qualifiers.cpp:38:23:38:23 | FieldAddress indirection | semmle.label | FieldAddress indirection |
|
||||
| qualifiers.cpp:38:23:38:23 | a | semmle.label | a |
|
||||
| qualifiers.cpp:42:5:42:40 | Store | semmle.label | Store |
|
||||
| qualifiers.cpp:42:7:42:11 | call to getInner [inner indirection, a] | semmle.label | call to getInner [inner indirection, 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] |
|
||||
@@ -1547,7 +1547,7 @@ nodes
|
||||
| qualifiers.cpp:43:23:43:23 | FieldAddress indirection | semmle.label | FieldAddress indirection |
|
||||
| qualifiers.cpp:43:23:43:23 | a | semmle.label | a |
|
||||
| qualifiers.cpp:47:5:47:42 | Store | semmle.label | Store |
|
||||
| qualifiers.cpp:47:6:47:11 | call to getInner [inner indirection, a] | semmle.label | call to getInner [inner indirection, a] |
|
||||
| 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 indirection [post update] [a] | semmle.label | Call 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] |
|
||||
@@ -1590,13 +1590,13 @@ nodes
|
||||
| simple.cpp:28:12:28:12 | call to a | semmle.label | call to a |
|
||||
| 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 | call to setA [a_] | semmle.label | call to setA [a_] |
|
||||
| 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 |
|
||||
| simple.cpp:40:5:40:5 | call to setB [b_] | semmle.label | call to setB [b_] |
|
||||
| simple.cpp:40:5:40:5 | setB output argument [b_] | semmle.label | setB output argument [b_] |
|
||||
| simple.cpp:40:12:40:21 | call to user_input | semmle.label | call to user_input |
|
||||
| simple.cpp:41:5:41:5 | call to setA [a_] | semmle.label | call to setA [a_] |
|
||||
| simple.cpp:41:5:41:5 | setA output argument [a_] | semmle.label | setA output argument [a_] |
|
||||
| simple.cpp:41:12:41:21 | call to user_input | semmle.label | call to user_input |
|
||||
| simple.cpp:42:5:42:5 | call to setB [b_] | semmle.label | call to setB [b_] |
|
||||
| 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 | f indirection [a_] | semmle.label | f indirection [a_] |
|
||||
| simple.cpp:48:9:48:9 | g indirection [b_] | semmle.label | g indirection [b_] |
|
||||
@@ -1665,15 +1665,15 @@ nodes
|
||||
subpaths
|
||||
| A.cpp:31:20:31:20 | c | A.cpp:23:10:23:10 | c | A.cpp:25:13:25:13 | Load 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 | VariableAddress indirection [c] | A.cpp:48:12:48:18 | Call indirection [c] |
|
||||
| A.cpp:55:12:55:19 | new | A.cpp:27:17:27:17 | c | A.cpp:27:28:27:28 | Load indirection [post update] [c] | A.cpp:55:5:55:5 | call to set [c] |
|
||||
| A.cpp:55:12:55:19 | new | A.cpp:27:17:27:17 | c | A.cpp:27:28:27:28 | Load 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 | VariableAddress 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 | VariableAddress 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 | Load 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 | VariableAddress indirection [c] | A.cpp:64:10:64:15 | Call indirection [c] |
|
||||
| A.cpp:73:25:73:32 | new | A.cpp:78:27:78:27 | c | A.cpp:78:6:78:15 | VariableAddress indirection [c] | A.cpp:73:10:73:19 | Call indirection [c] |
|
||||
| A.cpp:81:21:81:21 | c | A.cpp:85:26:85:26 | c | A.cpp:85:9:85:14 | VariableAddress indirection [c] | A.cpp:81:10:81:15 | Call indirection [c] |
|
||||
| A.cpp:90:15:90:15 | c | A.cpp:27:17:27:17 | c | A.cpp:27:28:27:28 | Load indirection [post update] [c] | A.cpp:90:7:90:8 | call to set [c] |
|
||||
| A.cpp:126:12:126:18 | new | A.cpp:27:17:27:17 | c | A.cpp:27:28:27:28 | Load indirection [post update] [c] | A.cpp:126:5:126:5 | call to set [c] |
|
||||
| A.cpp:90:15:90:15 | c | A.cpp:27:17:27:17 | c | A.cpp:27:28:27:28 | Load 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 | Load 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 | Load 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 | Load 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 | Load indirection [post update] [next indirection, head] | A.cpp:161:18:161:40 | call to MyList [next indirection, head] |
|
||||
@@ -1684,39 +1684,39 @@ subpaths
|
||||
| B.cpp:17:25:17:26 | b1 indirection [elem2] | B.cpp:44:16:44:17 | b1 indirection [elem2] | B.cpp:46:13:46:16 | Load 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 | VariableAddress 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 | VariableAddress 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 | Load indirection [post update] [elem] | D.cpp:37:8:37:10 | call to setElem [elem] |
|
||||
| D.cpp:51:27:51:27 | e | D.cpp:11:24:11:24 | e | D.cpp:11:29:11:32 | Load indirection [post update] [elem] | D.cpp:51:8:51:14 | call to setElem [elem] |
|
||||
| by_reference.cpp:20:23:20:27 | value | by_reference.cpp:15:26:15:30 | value | by_reference.cpp:16:11:16:11 | Load indirection [post update] [a] | by_reference.cpp:20:5:20:8 | call to setDirectly [a] |
|
||||
| D.cpp:37:21:37:21 | e | D.cpp:11:24:11:24 | e | D.cpp:11:29:11:32 | Load 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 | Load 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 | Load 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 | Load indirection [post update] [a] | by_reference.cpp:24:19:24:22 | nonMemberSetA 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:11:16:11 | Load indirection [post update] [a] | by_reference.cpp:50:3:50:3 | call to setDirectly [a] |
|
||||
| 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 | Load 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 | VariableAddress 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 | call to setDirectly [a] | by_reference.cpp:56:3:56:3 | call to setIndirectly [a] |
|
||||
| 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 | VariableAddress 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 | call to setThroughNonMember [a] |
|
||||
| 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 | VariableAddress 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 | Load 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 | VariableAddress 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 | VariableAddress 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 | VariableAddress indirection | complex.cpp:43:18:43:18 | call to b |
|
||||
| complex.cpp:53:19:53:28 | call to user_input | complex.cpp:11:17:11:17 | a | complex.cpp:11:22:11:23 | Load indirection [post update] [a_] | complex.cpp:53:12:53:12 | call to setA [a_] |
|
||||
| complex.cpp:54:19:54:28 | call to user_input | complex.cpp:12:17:12:17 | b | complex.cpp:12:22:12:23 | Load indirection [post update] [b_] | complex.cpp:54:12:54:12 | call to setB [b_] |
|
||||
| complex.cpp:55:19:55:28 | call to user_input | complex.cpp:11:17:11:17 | a | complex.cpp:11:22:11:23 | Load indirection [post update] [a_] | complex.cpp:55:12:55:12 | call to setA [a_] |
|
||||
| complex.cpp:56:19:56:28 | call to user_input | complex.cpp:12:17:12:17 | b | complex.cpp:12:22:12:23 | Load indirection [post update] [b_] | complex.cpp:56:12:56:12 | call to setB [b_] |
|
||||
| complex.cpp:53:19:53:28 | call to user_input | complex.cpp:11:17:11:17 | a | complex.cpp:11:22:11:23 | Load indirection [post update] [a_] | complex.cpp:53:12:53:12 | setA output argument [a_] |
|
||||
| complex.cpp:54:19:54:28 | call to user_input | complex.cpp:12:17:12:17 | b | complex.cpp:12:22:12:23 | Load 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 | Load 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 | Load 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 | VariableAddress 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 | VariableAddress 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 | Load indirection [post update] [a] | qualifiers.cpp:27:11:27:18 | call to setA [a] |
|
||||
| qualifiers.cpp:27:28:27:37 | call to user_input | qualifiers.cpp:9:21:9:25 | value | qualifiers.cpp:9:36:9:36 | Load 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 | Load 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 | f indirection [a_] | simple.cpp:18:9:18:9 | this indirection [a_] | simple.cpp:18:9:18:9 | VariableAddress 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 | VariableAddress 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 | Load indirection [post update] [a_] | simple.cpp:39:5:39:5 | call to setA [a_] |
|
||||
| simple.cpp:40:12:40:21 | call to user_input | simple.cpp:21:19:21:19 | b | simple.cpp:21:24:21:25 | Load indirection [post update] [b_] | simple.cpp:40:5:40:5 | call to setB [b_] |
|
||||
| simple.cpp:41:12:41:21 | call to user_input | simple.cpp:20:19:20:19 | a | simple.cpp:20:24:20:25 | Load indirection [post update] [a_] | simple.cpp:41:5:41:5 | call to setA [a_] |
|
||||
| simple.cpp:42:12:42:21 | call to user_input | simple.cpp:21:19:21:19 | b | simple.cpp:21:24:21:25 | Load indirection [post update] [b_] | simple.cpp:42:5:42:5 | call to setB [b_] |
|
||||
| simple.cpp:39:12:39:21 | call to user_input | simple.cpp:20:19:20:19 | a | simple.cpp:20:24:20:25 | Load 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 | Load 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 | Load indirection [post update] [a_] | simple.cpp:41:5:41:5 | setA output argument [a_] |
|
||||
| simple.cpp:42:12:42:21 | call to user_input | simple.cpp:21:19:21:19 | b | simple.cpp:21:24:21:25 | Load indirection [post update] [b_] | simple.cpp:42:5:42:5 | setB output argument [b_] |
|
||||
| simple.cpp:84:14:84:20 | this indirection [f2, f1] | simple.cpp:78:9:78:15 | this indirection [f2, f1] | simple.cpp:78:9:78:15 | VariableAddress indirection | simple.cpp:84:14:84:20 | call to getf2f1 |
|
||||
#select
|
||||
| A.cpp:49:10:49:13 | c | A.cpp:47:12:47:18 | new | A.cpp:49:10:49:13 | c | c flows from $@ | A.cpp:47:12:47:18 | new | new |
|
||||
|
||||
Reference in New Issue
Block a user