Skip to content

Commit 262a9f0

Browse files
committed
Rust: Make fixes in data flow based on PR feedback
1 parent c7b4e7c commit 262a9f0

File tree

3 files changed

+14
-5
lines changed

3 files changed

+14
-5
lines changed

rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ module Node {
9696
final class ArgumentNode = NaNode;
9797

9898
/** An SSA node. */
99-
abstract class SsaNode extends Node, TSsaNode {
99+
class SsaNode extends Node, TSsaNode {
100100
SsaImpl::DataFlowIntegration::SsaNode node;
101101
SsaImpl::DefinitionExt def;
102102

rust/ql/lib/codeql/rust/dataflow/internal/SsaImpl.qll

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -469,10 +469,7 @@ private module DataFlowIntegrationInput implements Impl::DataFlowIntegrationInpu
469469

470470
/** Holds if SSA definition `def` assigns `value` to the underlying variable. */
471471
predicate ssaDefAssigns(WriteDefinition def, Expr value) {
472-
exists(BasicBlock bb, int i |
473-
def.definesAt(_, bb, i) and
474-
value.getAstNode() = bb.getNode(i).getAstNode().(AssignmentExpr).getRhs()
475-
)
472+
exists(BasicBlock bb, int i | def.definesAt(_, bb, i) and value = bb.getNode(i))
476473
}
477474

478475
class Parameter = Param;
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,24 @@
1+
| main.rs:2:9:2:9 | s | main.rs:3:33:3:33 | s |
2+
| main.rs:6:18:6:21 | cond | main.rs:9:16:9:19 | cond |
3+
| main.rs:7:9:7:9 | a | main.rs:10:9:10:9 | a |
4+
| main.rs:8:9:8:9 | b | main.rs:12:9:12:9 | b |
5+
| main.rs:9:9:9:9 | c | main.rs:14:5:14:5 | c |
16
| main.rs:9:21:11:5 | BlockExpr | main.rs:9:13:13:5 | IfExpr |
27
| main.rs:10:9:10:9 | a | main.rs:9:21:11:5 | BlockExpr |
38
| main.rs:11:12:13:5 | BlockExpr | main.rs:9:13:13:5 | IfExpr |
49
| main.rs:12:9:12:9 | b | main.rs:11:12:13:5 | BlockExpr |
510
| main.rs:14:5:14:5 | c | main.rs:6:37:15:1 | BlockExpr |
11+
| main.rs:18:9:18:9 | a | main.rs:20:15:20:15 | a |
12+
| main.rs:19:9:19:9 | b | main.rs:22:5:22:5 | b |
613
| main.rs:20:9:20:15 | BreakExpr | main.rs:19:13:21:5 | LoopExpr |
714
| main.rs:20:15:20:15 | a | main.rs:20:9:20:15 | BreakExpr |
815
| main.rs:22:5:22:5 | b | main.rs:17:29:23:1 | BlockExpr |
16+
| main.rs:27:5:27:5 | i | main.rs:27:5:27:5 | i |
17+
| main.rs:27:5:27:5 | i | main.rs:28:5:28:5 | i |
918
| main.rs:28:5:28:5 | i | main.rs:25:24:29:1 | BlockExpr |
19+
| main.rs:31:21:31:21 | a | main.rs:33:20:33:20 | a |
20+
| main.rs:31:29:31:29 | b | main.rs:34:17:34:17 | b |
21+
| main.rs:31:37:31:37 | c | main.rs:32:11:32:11 | c |
1022
| main.rs:32:5:35:5 | MatchExpr | main.rs:31:60:36:1 | BlockExpr |
1123
| main.rs:33:20:33:20 | a | main.rs:32:5:35:5 | MatchExpr |
1224
| main.rs:34:17:34:17 | b | main.rs:32:5:35:5 | MatchExpr |

0 commit comments

Comments
 (0)