diff --git a/cpp/ql/test/library-tests/ir/range-analysis/SimpleRangeAnalysis_tests.cpp b/cpp/ql/test/library-tests/ir/range-analysis/SimpleRangeAnalysis_tests.cpp index 58ed4fdf396..eb91006594b 100644 --- a/cpp/ql/test/library-tests/ir/range-analysis/SimpleRangeAnalysis_tests.cpp +++ b/cpp/ql/test/library-tests/ir/range-analysis/SimpleRangeAnalysis_tests.cpp @@ -18,7 +18,7 @@ int test2(struct List* p) { int count = 0; for (; p; p = p->next) { count = (count+1) % 10; - range(count); // $ range=<=9 + range(count); // $ range=<=9 range=<=count:p+1 } range(count); // $ range=<=9 return count; @@ -29,7 +29,7 @@ int test3(struct List* p) { for (; p; p = p->next) { range(count++); // $ range=<=9 count = count % 10; - range(count); // $ range=<=9 + range(count); // $ range=<=9 range="<=... +++0" range=<=count:p+1 } range(count); // $ range=<=9 return count; @@ -40,13 +40,13 @@ int test4() { int total = 0; for (i = 0; i < 2; i = i+1) { range(i); // $ range=<=1 range=>=0 - range(total); + range(total); // $ range=>=0 total += i; - range(total); + range(total); // $ range=>=0 range=>=i+0 } - range(total); + range(total); // $ range=>=0 range(i); // $ range===2 - range(total + i); // $ range=>=i+1 + range(total + i); // $ range=>=i+1 range=>=2 range=>=i+0 return total + i; } @@ -55,13 +55,13 @@ int test5() { int total = 0; for (i = 0; i < 2; i++) { range(i); // $ range=<=1 range=>=0 - range(total); + range(total); // $ range=>=0 total += i; - range(total); + range(total); // $ range=>=0 range=>=i+0 } - range(total); + range(total); // $ range=>=0 range(i); // $ range===2 - range(total + i); // $ range=>=i+1 + range(total + i); // $ range=>=i+1 range=>=2 range=>=i+0 return total + i; } @@ -70,9 +70,9 @@ int test6() { int total = 0; for (i = 0; i+2 < 4; i = i+1) { range(i); // $ range=<=1 range=>=0 - range(total); + range(total); // $ range=>=0 total += i; - range(total); + range(total); // $ range=>=0 range=>=i+0 } return total + i; } @@ -149,7 +149,7 @@ int test11(char *p) { range(*p); } if (c == ':') { - range(c); + range(c); // $ range===58 c = *p; range(*p); if (c != '\0') { @@ -310,7 +310,7 @@ int test_mult01(int a, int b) { int r = a*b; // 0 .. 253 range(r); total += r; - range(total); // $ range=>=0 range=>=3+0 + range(total); // $ range=>=0 range=>=3+0 range=">=... * ...+0" } if (3 <= a && a <= 11 && -13 <= b && b <= 23) { range(a); // $ range=<=11 range=>=3 @@ -318,7 +318,7 @@ int test_mult01(int a, int b) { int r = a*b; // -143 .. 253 range(r); total += r; - range(total); + range(total); // $ range=">=... * ...+0" } if (3 <= a && a <= 11 && -13 <= b && b <= 0) { range(a); // $ range=<=11 range=>=3 @@ -358,7 +358,7 @@ int test_mult02(int a, int b) { int r = a*b; // 0 .. 253 range(r); total += r; - range(total); // $ range=>=0 range=>=0+0 + range(total); // $ range=>=0 range=>=0+0 range=">=... * ...+0" } if (0 <= a && a <= 11 && -13 <= b && b <= 23) { range(a); // $ range=<=11 range=>=0 @@ -366,7 +366,7 @@ int test_mult02(int a, int b) { int r = a*b; // -143 .. 253 range(r); total += r; - range(total); + range(total); // $ range=">=... * ...+0" } if (0 <= a && a <= 11 && -13 <= b && b <= 0) { range(a); // $ range=<=11 range=>=0 @@ -453,7 +453,7 @@ int test_mult04(int a, int b) { int r = a*b; // -391 .. 0 range(r); total += r; - range(total); // $ range="<=- ...+0" range=<=0 + range(total); // $ range="<=- ...+0" range=<=0 range="<=... * ...+0" } if (-17 <= a && a <= 0 && -13 <= b && b <= 23) { range(a); // $ range=<=0 range=>=-17 @@ -461,7 +461,7 @@ int test_mult04(int a, int b) { int r = a*b; // -391 .. 221 range(r); total += r; - range(total); + range(total); // $ range="<=... * ...+0" } if (-17 <= a && a <= 0 && -13 <= b && b <= 0) { range(a); // $ range=<=0 range=>=-17 @@ -501,7 +501,7 @@ int test_mult05(int a, int b) { int r = a*b; // -391 .. 0 range(r); total += r; - range(total); // $ range="<=- ...+0" range=<=0 + range(total); // $ range="<=- ...+0" range=<=0 range="<=... * ...+0" } if (-17 <= a && a <= -2 && -13 <= b && b <= 23) { range(a); // $ range=<=-2 range=>=-17 @@ -509,7 +509,7 @@ int test_mult05(int a, int b) { int r = a*b; // -391 .. 221 range(r); total += r; - range(total); + range(total); // $ range="<=... * ...+0" } if (-17 <= a && a <= -2 && -13 <= b && b <= 0) { range(a); // $ range=<=-2 range=>=-17 @@ -628,7 +628,7 @@ unsigned int test_ternary02(unsigned int x) { (range(x), 5); // $ range=>=300 range(y5); // y6 >= 0 } - range(y1 + y2 + y3 + y4 + y5); // $ range=">=... = ...:... ? ... : ...+0" range=">=call to range+0" + range(y1 + y2 + y3 + y4 + y5); // $ range=">=... = ...:... ? ... : ...+1" range=">=call to range+1" return y1 + y2 + y3 + y4 + y5; } @@ -693,7 +693,7 @@ int test_unsigned_mult01(unsigned int a, unsigned b) { int r = a*b; // 0 .. 253 range(r); total += r; - range(total); // $ range=">=(unsigned int)...+0" range=>=0 + range(total); // $ range=">=(unsigned int)...+0" range=>=0 range=>=(int)...+0 } if (3 <= a && a <= 11 && 13 <= b && b <= 23) { range(a); // $ range=<=11 range=>=3 @@ -701,7 +701,7 @@ int test_unsigned_mult01(unsigned int a, unsigned b) { int r = a*b; // 39 .. 253 range(r); total += r; - range(total); // $ range=">=(unsigned int)...+1" range=>=1 + range(total); // $ range=">=(unsigned int)...+1" range=>=1 range=>=(int)...+0 } range(total); // $ range=">=(unsigned int)...+0" range=>=0 return total; @@ -722,14 +722,14 @@ int test_unsigned_mult02(unsigned b) { int r = 11*b; // 0 .. 253 range(r); total += r; - range(total); // $ range=">=(unsigned int)...+0" range=>=0 + range(total); // $ range=">=(unsigned int)...+0" range=>=0 range=>=(int)...+0 } if (13 <= b && b <= 23) { range(b); // $ range=<=23 range=>=13 int r = 11*b; // 143 .. 253 range(r); total += r; - range(total); // $ range=">=(unsigned int)...+1" range=>=1 + range(total); // $ range=">=(unsigned int)...+1" range=>=1 range=>=(int)...+0 } range(total); // $ range=">=(unsigned int)...+0" range=>=0 return total; @@ -856,18 +856,18 @@ int notequal_type_endpoint(unsigned n) { void notequal_refinement(short n) { if (n < 0) { - range(n); + range(n); // $ range=<=-1 return; } if (n == 0) { range(n); // 0 .. 0 } else { - range(n); // 1 .. + range(n); // $ range=>=1 } if (n) { - range(n); // 1 .. + range(n); // $ range=>=1 } else { range(n); // 0 .. 0 } @@ -883,16 +883,16 @@ void notequal_refinement(short n) { void notequal_variations(short n, float f) { if (n != 0) { if (n >= 0) { - range(n); // 1 .. [BUG: we can't handle `!=` coming first] + range(n); // $ range=>=1 } } if (n >= 5) { if (2 * n - 10 == 0) { // Same as `n == 10/2` (modulo overflow) - range(n); + range(n); // $ range=>=5 MISSING: range===5 return; } - range(n); // 6 .. + range(n); // $ range=>=5 MISSING: range=>=6 } if (n != -32768 && n != -32767) { @@ -900,8 +900,12 @@ void notequal_variations(short n, float f) { } if (n >= 0) { - n ? (range(n), n) : (range(n), n); // ? 1.. : 0..0 - !n ? (range(n), n) : (range(n), n); // ? 0..0 : 1.. + n ? + (range(n), n) // $ range=>=1 + : (range(n), n); // $ MISSING: range===0 + !n ? + (range(n), n) // $ MISSING: range===0 + : (range(n), n); // $ range=>=1 } } @@ -917,7 +921,7 @@ void two_bounds_from_one_test(short ss, unsigned short us) { } if (ss < 0x8001) { // Lower bound removed in `getDefLowerBounds` - range(ss); // -32768 .. 32767 + range(ss); // $ range=<=32768 MISSING: range=>=-32768 } if ((short)us >= 0) { @@ -942,7 +946,7 @@ void widen_recursive_expr() { for (s = 0; s < 10; s++) { range(s); // $ range=<=9 range=>=0 int result = s + s; - range(result); // 0 .. 18 + range(result); // $ range=>=0 range=>=s+0 // 0 .. 18 } }