Skip to content

Commit 8474a47

Browse files
committed
Rust: Switch test to use dedicated test module.
1 parent 122034f commit 8474a47

File tree

3 files changed

+16
-17
lines changed

3 files changed

+16
-17
lines changed

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

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -100,12 +100,6 @@ class PhiDefinition = Impl::PhiNode;
100100

101101
module Consistency = Impl::Consistency;
102102

103-
module ExposedForTestingOnly {
104-
predicate ssaDefReachesReadExt = Impl::ssaDefReachesReadExt/4;
105-
106-
predicate phiHasInputFromBlockExt = Impl::phiHasInputFromBlockExt/3;
107-
}
108-
109103
/** Holds if `v` is read at index `i` in basic block `bb`. */
110104
private predicate variableReadActual(BasicBlock bb, int i, Variable v) {
111105
exists(VariableAccess read |

rust/ql/test/library-tests/variables/Ssa.expected

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -535,14 +535,15 @@ phi
535535
phiReadNode
536536
| main.rs:104:11:105:12 | SSA phi read(s1) | main.rs:102:9:102:10 | s1 |
537537
| main.rs:493:5:497:5 | SSA phi read(x) | main.rs:492:9:492:9 | x |
538-
phiReadNodeRead
538+
phiReadNodeFirstRead
539539
| main.rs:104:11:105:12 | SSA phi read(s1) | main.rs:102:9:102:10 | s1 | main.rs:105:11:105:12 | s1 |
540540
| main.rs:493:5:497:5 | SSA phi read(x) | main.rs:492:9:492:9 | x | main.rs:500:19:500:19 | x |
541541
| main.rs:493:5:497:5 | SSA phi read(x) | main.rs:492:9:492:9 | x | main.rs:502:19:502:19 | x |
542542
phiReadInput
543543
| main.rs:104:11:105:12 | SSA phi read(s1) | main.rs:102:9:102:10 | s1 |
544-
| main.rs:104:11:105:12 | SSA phi read(s1) | main.rs:104:11:105:12 | SSA phi read(s1) |
545-
| main.rs:493:5:497:5 | SSA phi read(x) | main.rs:492:9:492:9 | x |
544+
| main.rs:104:11:105:12 | SSA phi read(s1) | main.rs:105:11:105:12 | SSA read(s1) |
545+
| main.rs:493:5:497:5 | SSA phi read(x) | main.rs:494:19:494:19 | SSA read(x) |
546+
| main.rs:493:5:497:5 | SSA phi read(x) | main.rs:496:19:496:19 | SSA read(x) |
546547
ultimateDef
547548
| main.rs:191:9:191:44 | phi | main.rs:191:22:191:23 | a3 |
548549
| main.rs:191:9:191:44 | phi | main.rs:191:42:191:43 | a3 |

rust/ql/test/library-tests/variables/Ssa.ql

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import codeql.rust.controlflow.BasicBlocks
33
import codeql.rust.controlflow.ControlFlowGraph
44
import codeql.rust.dataflow.Ssa
55
import codeql.rust.dataflow.internal.SsaImpl
6-
import ExposedForTestingOnly
6+
import Impl::TestAdjacentRefs as RefTest
77

88
query predicate definition(Ssa::Definition def, Variable v) { def.getSourceVariable() = v }
99

@@ -24,18 +24,22 @@ query predicate phi(Ssa::PhiDefinition phi, Variable v, Ssa::Definition input) {
2424
phi.getSourceVariable() = v and input = phi.getAnInput()
2525
}
2626

27-
query predicate phiReadNode(PhiReadNode phi, Variable v) { phi.getSourceVariable() = v }
27+
query predicate phiReadNode(RefTest::Ref phi, Variable v) {
28+
phi.isPhiRead() and phi.getSourceVariable() = v
29+
}
2830

29-
query predicate phiReadNodeRead(PhiReadNode phi, Variable v, CfgNode read) {
30-
phi.getSourceVariable() = v and
31-
exists(BasicBlock bb, int i |
32-
ssaDefReachesReadExt(v, phi, bb, i) and
31+
query predicate phiReadNodeFirstRead(RefTest::Ref phi, Variable v, CfgNode read) {
32+
exists(RefTest::Ref r, BasicBlock bb, int i |
33+
phi.isPhiRead() and
34+
RefTest::adjacentRefRead(phi, r) and
35+
r.accessAt(bb, i, v) and
3336
read = bb.getNode(i)
3437
)
3538
}
3639

37-
query predicate phiReadInput(PhiReadNode phi, DefinitionExt inp) {
38-
phiHasInputFromBlockExt(phi, inp, _)
40+
query predicate phiReadInput(RefTest::Ref phi, RefTest::Ref inp) {
41+
phi.isPhiRead() and
42+
RefTest::adjacentRefPhi(inp, phi)
3943
}
4044

4145
query predicate ultimateDef(Ssa::Definition def, Definition ult) {

0 commit comments

Comments
 (0)