Skip to content

Commit 4a3118b

Browse files
authored
Merge pull request #4246 from RasmusWL/java-fix-ssa-varBlockReaches
Java: Minor fixup for SSA AdjacentUsesImpl::varBlockReaches
2 parents 016e6d2 + 233dd43 commit 4a3118b

File tree

2 files changed

+6
-2
lines changed

2 files changed

+6
-2
lines changed

java/ql/src/semmle/code/java/dataflow/SSA.qll

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -779,7 +779,9 @@ private module SsaImpl {
779779
* between `b1` and `b2`.
780780
*/
781781
private predicate varBlockReaches(TrackedVar v, BasicBlock b1, BasicBlock b2) {
782-
varOccursInBlock(v, b1) and b2 = b1.getABBSuccessor()
782+
varOccursInBlock(v, b1) and
783+
b2 = b1.getABBSuccessor() and
784+
blockPrecedesVar(v, b2)
783785
or
784786
exists(BasicBlock mid |
785787
varBlockReaches(v, b1, mid) and

java/ql/src/semmle/code/java/dataflow/internal/BaseSSA.qll

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -330,7 +330,9 @@ private module SsaImpl {
330330
* between `b1` and `b2`.
331331
*/
332332
private predicate varBlockReaches(BaseSsaSourceVariable v, BasicBlock b1, BasicBlock b2) {
333-
varOccursInBlock(v, b1) and b2 = b1.getABBSuccessor()
333+
varOccursInBlock(v, b1) and
334+
b2 = b1.getABBSuccessor() and
335+
blockPrecedesVar(v, b2)
334336
or
335337
exists(BasicBlock mid |
336338
varBlockReaches(v, b1, mid) and

0 commit comments

Comments
 (0)