Skip to content

Commit ee33125

Browse files
committed
C++: Add test for extensible range analysis
This commit demonstrates that the range is too wide before custom modeling has been added to the test.
1 parent bf7732e commit ee33125

File tree

3 files changed

+21
-0
lines changed

3 files changed

+21
-0
lines changed
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
/// Adds its arguments (requires custom modeling in QL)
2+
int custom_add_function(int a, int b);
3+
4+
int test_extensibility_add(int x) {
5+
if (x >= -10 && x <= 10) {
6+
int result = custom_add_function(x, 100);
7+
return result; // should be 90 .. 110
8+
}
9+
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
| extensibility.c:5:7:5:7 | x | -2.147483648E9 | 2.147483647E9 |
2+
| extensibility.c:5:19:5:19 | x | -10.0 | 2.147483647E9 |
3+
| extensibility.c:6:38:6:38 | x | -10.0 | 10.0 |
4+
| extensibility.c:7:12:7:17 | result | -2.147483648E9 | 2.147483647E9 |
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import semmle.code.cpp.rangeanalysis.SimpleRangeAnalysis
2+
import experimental.semmle.code.cpp.models.interfaces.SimpleRangeAnalysisExpr
3+
4+
from VariableAccess expr, float lower, float upper
5+
where
6+
lower = lowerBound(expr) and
7+
upper = upperBound(expr)
8+
select expr, lower, upper

0 commit comments

Comments
 (0)