Skip to content

Commit eee82f1

Browse files
author
Paolo Tranquilli
committed
Merge branch 'main' into redsun82/rules_rust-update
2 parents 71de5a2 + 4bb7559 commit eee82f1

File tree

25 files changed

+1290
-1041
lines changed

25 files changed

+1290
-1041
lines changed

go/extractor/go.mod

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ toolchain go1.23.1
1010
// bazel mod tidy
1111
require (
1212
golang.org/x/mod v0.23.0
13-
golang.org/x/tools v0.29.0
13+
golang.org/x/tools v0.30.0
1414
)
1515

16-
require golang.org/x/sync v0.10.0 // indirect
16+
require golang.org/x/sync v0.11.0 // indirect

go/extractor/go.sum

+4-4
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
22
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
33
golang.org/x/mod v0.23.0 h1:Zb7khfcRGKk+kqfxFaP5tZqCnDZMjC5VtUBs87Hr6QM=
44
golang.org/x/mod v0.23.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY=
5-
golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ=
6-
golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
7-
golang.org/x/tools v0.29.0 h1:Xx0h3TtM9rzQpQuR4dKLrdglAmCEN5Oi+P74JdhdzXE=
8-
golang.org/x/tools v0.29.0/go.mod h1:KMQVMRsVxU6nHCFXrBPhDB8XncLNLM0lIy/F14RP588=
5+
golang.org/x/sync v0.11.0 h1:GGz8+XQP4FvTTrjZPzNKTMFtSXH80RAzG+5ghFPgK9w=
6+
golang.org/x/sync v0.11.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
7+
golang.org/x/tools v0.30.0 h1:BgcpHewrV5AUp2G9MebG4XPFI1E2W41zU1SaqVA9vJY=
8+
golang.org/x/tools v0.30.0/go.mod h1:c347cR/OJfw5TI+GfX7RUPNMdDRRbjvYTS0jPyvsVtY=

java/ql/lib/semmle/code/java/dataflow/Nullness.qll

+24-11
Original file line numberDiff line numberDiff line change
@@ -463,6 +463,21 @@ private predicate interestingCond(SsaSourceVariable npecand, ConditionBlock cond
463463
not cond.getCondition().(Expr).getAChildExpr*() = npecand.getAnAccess()
464464
}
465465

466+
pragma[nomagic]
467+
private ConditionBlock ssaIntegerGuard(SsaVariable v, boolean branch, int k, boolean is_k) {
468+
result.getCondition() = integerGuard(v.getAUse(), branch, k, is_k)
469+
}
470+
471+
pragma[nomagic]
472+
private ConditionBlock ssaIntBoundGuard(SsaVariable v, boolean branch_with_lower_bound_k, int k) {
473+
result.getCondition() = intBoundGuard(v.getAUse(), branch_with_lower_bound_k, k)
474+
}
475+
476+
pragma[nomagic]
477+
private ConditionBlock ssaEnumConstEquality(SsaVariable v, boolean polarity, EnumConstant c) {
478+
result.getCondition() = enumConstEquality(v.getAUse(), polarity, c)
479+
}
480+
466481
/** A pair of correlated conditions for a given NPE candidate. */
467482
private predicate correlatedConditions(
468483
SsaSourceVariable npecand, ConditionBlock cond1, ConditionBlock cond2, boolean inverted
@@ -485,25 +500,23 @@ private predicate correlatedConditions(
485500
inverted = branch1.booleanXor(branch2)
486501
)
487502
or
488-
exists(SsaVariable v, VarRead rv1, VarRead rv2, int k, boolean branch1, boolean branch2 |
489-
rv1 = v.getAUse() and
490-
rv2 = v.getAUse() and
491-
cond1.getCondition() = integerGuard(rv1, branch1, k, true) and
492-
cond1.getCondition() = integerGuard(rv1, branch1.booleanNot(), k, false) and
493-
cond2.getCondition() = integerGuard(rv2, branch2, k, true) and
494-
cond2.getCondition() = integerGuard(rv2, branch2.booleanNot(), k, false) and
503+
exists(SsaVariable v, int k, boolean branch1, boolean branch2 |
504+
cond1 = ssaIntegerGuard(v, branch1, k, true) and
505+
cond1 = ssaIntegerGuard(v, branch1.booleanNot(), k, false) and
506+
cond2 = ssaIntegerGuard(v, branch2, k, true) and
507+
cond2 = ssaIntegerGuard(v, branch2.booleanNot(), k, false) and
495508
inverted = branch1.booleanXor(branch2)
496509
)
497510
or
498511
exists(SsaVariable v, int k, boolean branch1, boolean branch2 |
499-
cond1.getCondition() = intBoundGuard(v.getAUse(), branch1, k) and
500-
cond2.getCondition() = intBoundGuard(v.getAUse(), branch2, k) and
512+
cond1 = ssaIntBoundGuard(v, branch1, k) and
513+
cond2 = ssaIntBoundGuard(v, branch2, k) and
501514
inverted = branch1.booleanXor(branch2)
502515
)
503516
or
504517
exists(SsaVariable v, EnumConstant c, boolean pol1, boolean pol2 |
505-
cond1.getCondition() = enumConstEquality(v.getAUse(), pol1, c) and
506-
cond2.getCondition() = enumConstEquality(v.getAUse(), pol2, c) and
518+
cond1 = ssaEnumConstEquality(v, pol1, c) and
519+
cond2 = ssaEnumConstEquality(v, pol2, c) and
507520
inverted = pol1.booleanXor(pol2)
508521
)
509522
or

0 commit comments

Comments
 (0)