Skip to content

Commit 484d0fe

Browse files
authored
Merge pull request #14659 from aschackmull/shared/modulus-analysis
Java/C++: Share modulus analysis
2 parents 8f4509f + 7c3684d commit 484d0fe

File tree

7 files changed

+342
-348
lines changed

7 files changed

+342
-348
lines changed

cpp/ql/lib/semmle/code/cpp/rangeanalysis/new/internal/semantic/analysis/ModulusAnalysis.qll

Lines changed: 0 additions & 328 deletions
This file was deleted.

cpp/ql/lib/semmle/code/cpp/rangeanalysis/new/internal/semantic/analysis/ModulusAnalysisSpecific.qll

Lines changed: 0 additions & 8 deletions
This file was deleted.

cpp/ql/lib/semmle/code/cpp/rangeanalysis/new/internal/semantic/analysis/RangeAnalysisImpl.qll

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,8 @@ module Sem implements Semantic {
7878

7979
predicate guardDirectlyControlsSsaRead = semGuardDirectlyControlsSsaRead/3;
8080

81+
predicate guardControlsSsaRead = semGuardControlsSsaRead/3;
82+
8183
class Type = SemType;
8284

8385
class IntegerType = SemIntegerType;
@@ -169,8 +171,8 @@ module AllBounds implements BoundSig<SemLocation, Sem, FloatDelta> {
169171
private module ModulusAnalysisInstantiated implements ModulusAnalysisSig<Sem> {
170172
class ModBound = AllBounds::SemBound;
171173

172-
private import semmle.code.cpp.rangeanalysis.new.internal.semantic.analysis.ModulusAnalysis as MA
173-
import MA::ModulusAnalysis<FloatDelta, AllBounds, Util>
174+
private import codeql.rangeanalysis.ModulusAnalysis as MA
175+
import MA::ModulusAnalysis<SemLocation, Sem, FloatDelta, AllBounds, Util>
174176
}
175177

176178
module Util = RangeUtil<FloatDelta, CppLangImplConstant>;

cpp/ql/test/library-tests/ir/modulus-analysis/ModulusAnalysis.ql

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import cpp
2-
import semmle.code.cpp.rangeanalysis.new.internal.semantic.analysis.ModulusAnalysis
2+
import codeql.rangeanalysis.ModulusAnalysis
33
import semmle.code.cpp.rangeanalysis.new.internal.semantic.Semantic
4+
import semmle.code.cpp.rangeanalysis.new.internal.semantic.SemanticLocation
45
import semmle.code.cpp.rangeanalysis.new.internal.semantic.analysis.RangeUtils
56
import semmle.code.cpp.rangeanalysis.new.internal.semantic.analysis.FloatDelta
67
import semmle.code.cpp.rangeanalysis.new.internal.semantic.analysis.RangeAnalysisRelativeSpecific
@@ -10,7 +11,8 @@ import semmle.code.cpp.ir.IR as IR
1011
import TestUtilities.InlineExpectationsTest
1112

1213
module ModulusAnalysisInstantiated =
13-
ModulusAnalysis<FloatDelta, ConstantBounds, RangeUtil<FloatDelta, CppLangImplRelative>>;
14+
ModulusAnalysis<SemLocation, Sem, FloatDelta, ConstantBounds,
15+
RangeUtil<FloatDelta, CppLangImplRelative>>;
1416

1517
module ModulusAnalysisTest implements TestSig {
1618
string getARelevantTag() { result = "mod" }
@@ -31,7 +33,7 @@ import MakeTest<ModulusAnalysisTest>
3133

3234
private string getAModString(SemExpr e) {
3335
exists(SemBound b, int delta, int mod |
34-
ModulusAnalysisInstantiated::semExprModulus(e, b, delta, mod) and
36+
ModulusAnalysisInstantiated::exprModulus(e, b, delta, mod) and
3537
result = b.toString() + "," + delta.toString() + "," + mod.toString() and
3638
not (delta = 0 and mod = 0)
3739
)

0 commit comments

Comments
 (0)