1
1
import cpp
2
2
import experimental.semmle.code.cpp.semantic.analysis.ModulusAnalysis
3
3
import experimental.semmle.code.cpp.semantic.Semantic
4
+ import experimental.semmle.code.cpp.semantic.analysis.RangeUtils
5
+ import experimental.semmle.code.cpp.semantic.analysis.FloatDelta
6
+ import experimental.semmle.code.cpp.semantic.analysis.RangeAnalysisSpecific
7
+ import experimental.semmle.code.cpp.semantic.analysis.RangeAnalysis
4
8
import semmle.code.cpp.ir.IR as IR
5
9
import TestUtilities.InlineExpectationsTest
6
10
11
+ module ModulusAnalysisInstantiated =
12
+ ModulusAnalysis< FloatDelta , Bounds , RangeUtil< FloatDelta , CppLangImpl > > ;
13
+
7
14
class ModulusAnalysisTest extends InlineExpectationsTest {
8
15
ModulusAnalysisTest ( ) { this = "ModulusAnalysisTest" }
9
16
@@ -23,7 +30,7 @@ class ModulusAnalysisTest extends InlineExpectationsTest {
23
30
24
31
private string getAModString ( SemExpr e ) {
25
32
exists ( SemBound b , int delta , int mod |
26
- semExprModulus ( e , b , delta , mod ) and
33
+ ModulusAnalysisInstantiated :: semExprModulus ( e , b , delta , mod ) and
27
34
result = b .toString ( ) + "," + delta .toString ( ) + "," + mod .toString ( ) and
28
35
not ( delta = 0 and mod = 0 )
29
36
)
0 commit comments