|
1 | 1 | private import RangeAnalysisConstantSpecific |
2 | 2 | private import RangeAnalysisRelativeSpecific |
3 | 3 | private import semmle.code.cpp.rangeanalysis.new.internal.semantic.analysis.FloatDelta |
4 | | -private import RangeUtils |
5 | 4 | private import semmle.code.cpp.rangeanalysis.new.internal.semantic.SemanticExpr |
6 | 5 | private import semmle.code.cpp.rangeanalysis.new.internal.semantic.SemanticCFG |
7 | 6 | private import semmle.code.cpp.rangeanalysis.new.internal.semantic.SemanticGuard |
@@ -88,20 +87,26 @@ module Sem implements Semantic { |
88 | 87 |
|
89 | 88 | class AddressType = SemAddressType; |
90 | 89 |
|
| 90 | + SemType getExprType(SemExpr e) { result = e.getSemType() } |
| 91 | + |
| 92 | + SemType getSsaType(SemSsaVariable var) { result = var.getType() } |
| 93 | + |
91 | 94 | class SsaVariable = SemSsaVariable; |
92 | 95 |
|
93 | 96 | class SsaPhiNode = SemSsaPhiNode; |
94 | 97 |
|
95 | 98 | class SsaExplicitUpdate = SemSsaExplicitUpdate; |
96 | 99 |
|
| 100 | + predicate additionalValueFlowStep(SemExpr dest, SemExpr src, int delta) { none() } |
| 101 | + |
97 | 102 | predicate conversionCannotOverflow(Type fromType, Type toType) { |
98 | 103 | SemanticType::conversionCannotOverflow(fromType, toType) |
99 | 104 | } |
100 | 105 | } |
101 | 106 |
|
102 | 107 | module SignAnalysis implements SignAnalysisSig<Sem> { |
103 | 108 | private import SignAnalysisCommon as SA |
104 | | - import SA::SignAnalysis<FloatDelta, Util> |
| 109 | + import SA::SignAnalysis<FloatDelta> |
105 | 110 | } |
106 | 111 |
|
107 | 112 | module ConstantBounds implements BoundSig<SemLocation, Sem, FloatDelta> { |
@@ -164,18 +169,16 @@ private module ModulusAnalysisInstantiated implements ModulusAnalysisSig<Sem> { |
164 | 169 | class ModBound = AllBounds::SemBound; |
165 | 170 |
|
166 | 171 | private import codeql.rangeanalysis.ModulusAnalysis as MA |
167 | | - import MA::ModulusAnalysis<SemLocation, Sem, FloatDelta, AllBounds, Util> |
| 172 | + import MA::ModulusAnalysis<SemLocation, Sem, FloatDelta, AllBounds> |
168 | 173 | } |
169 | 174 |
|
170 | | -module Util = RangeUtil<FloatDelta, CppLangImplConstant>; |
171 | | - |
172 | 175 | module ConstantStage = |
173 | 176 | RangeStage<SemLocation, Sem, FloatDelta, ConstantBounds, FloatOverflow, CppLangImplConstant, |
174 | | - SignAnalysis, ModulusAnalysisInstantiated, Util>; |
| 177 | + SignAnalysis, ModulusAnalysisInstantiated>; |
175 | 178 |
|
176 | 179 | module RelativeStage = |
177 | 180 | RangeStage<SemLocation, Sem, FloatDelta, RelativeBounds, FloatOverflow, CppLangImplRelative, |
178 | | - SignAnalysis, ModulusAnalysisInstantiated, Util>; |
| 181 | + SignAnalysis, ModulusAnalysisInstantiated>; |
179 | 182 |
|
180 | 183 | private newtype TSemReason = |
181 | 184 | TSemNoReason() or |
|
0 commit comments