File tree Expand file tree Collapse file tree 2 files changed +22
-1
lines changed
cpp/ql/test/query-tests/Likely Bugs/Arithmetic/PointlessComparison Expand file tree Collapse file tree 2 files changed +22
-1
lines changed Original file line number Diff line number Diff line change @@ -26,4 +26,20 @@ void test1() {
26
26
if (a.int_member <= 10 ) {}
27
27
28
28
if (volatile_const_global <= 10 ) {}
29
- }
29
+ }
30
+
31
+ int extreme_values (void )
32
+ {
33
+ unsigned long long int x = 0xFFFFFFFFFFFFFFFF ;
34
+ unsigned long long int y = 0xFFFFFFFFFFFF ;
35
+
36
+ if (x >> 1 >= 0xFFFFFFFFFFFFFFFF ) {} // always false
37
+ if (x >> 1 >= 0x8000000000000000 ) {} // always false [NOT DETECTED]
38
+ if (x >> 1 >= 0x7FFFFFFFFFFFFFFF ) {} // always true [NOT DETECTED]
39
+ if (x >> 1 >= 0xFFFFFFFFFFFFFFF ) {} // always true [NOT DETECTED]
40
+
41
+ if (y >> 1 >= 0xFFFFFFFFFFFF ) {} // always false [INCORRECT MESSAGE]
42
+ if (y >> 1 >= 0x800000000000 ) {} // always false [INCORRECT MESSAGE]
43
+ if (y >> 1 >= 0x7FFFFFFFFFFF ) {} // always true [INCORRECT MESSAGE]
44
+ if (y >> 1 >= 0xFFFFFFFFFFF ) {} // always true [INCORRECT MESSAGE]
45
+ }
Original file line number Diff line number Diff line change 42
42
| PointlessComparison.c:373:6:373:16 | ... >= ... | Comparison is always false because ... >> ... <= 1.5. |
43
43
| PointlessComparison.c:374:6:374:16 | ... == ... | Comparison is always false because ... >> ... >= 1.5. |
44
44
| PointlessComparison.c:383:6:383:17 | ... >= ... | Comparison is always false because ... & ... <= 2. |
45
+ | PointlessComparison.cpp:36:6:36:33 | ... >= ... | Comparison is always false because ... >> ... <= 9223372036854776000. |
46
+ | PointlessComparison.cpp:41:6:41:29 | ... >= ... | Comparison is always false because ... >> ... <= 140737488355327.5. |
47
+ | PointlessComparison.cpp:42:6:42:29 | ... >= ... | Comparison is always false because ... >> ... <= 140737488355327.5. |
48
+ | PointlessComparison.cpp:43:6:43:29 | ... >= ... | Comparison is always true because ... >> ... >= 140737488355327.5. |
49
+ | PointlessComparison.cpp:44:6:44:28 | ... >= ... | Comparison is always true because ... >> ... >= 140737488355327.5. |
45
50
| RegressionTests.cpp:57:7:57:22 | ... <= ... | Comparison is always true because * ... <= 4294967295. |
46
51
| Templates.cpp:9:10:9:24 | ... <= ... | Comparison is always true because local <= 32767. |
You can’t perform that action at this time.
0 commit comments