Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 354f8bd

Browse files
committed
C++: Test of range analysis 64-bit rounding issue
1 parent c577f6d commit 354f8bd

2 files changed

Lines changed: 10 additions & 0 deletions

File tree

cpp/ql/test/query-tests/Likely Bugs/Arithmetic/PointlessComparison/PointlessComparison.expected

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,4 +32,5 @@
3232
| PointlessComparison.c:129:12:129:16 | ... > ... | Comparison is always false because a <= 3. |
3333
| PointlessComparison.c:197:7:197:11 | ... < ... | Comparison is always false because x >= 0. |
3434
| RegressionTests.cpp:57:7:57:22 | ... <= ... | Comparison is always true because * ... <= 4294967295. |
35+
| RegressionTests.cpp:63:7:63:17 | ... == ... | Comparison is always false because ... + ... >= 1. |
3536
| Templates.cpp:9:10:9:24 | ... <= ... | Comparison is always true because local <= 32767. |

cpp/ql/test/query-tests/Likely Bugs/Arithmetic/PointlessComparison/RegressionTests.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,3 +57,12 @@ static int foo(size_t *size)
5757
if (*size <= MAX_VAL) // BAD (pointless comparison) [NO LONGER REPORTED]
5858
*size = MAX_VAL;
5959
}
60+
61+
// ODASA-7205
62+
int regression_test_01(unsigned long bb) {
63+
if (bb + 1 == 0) { // GOOD [FALSE POSITIVE]
64+
return 0;
65+
} else {
66+
return 1;
67+
}
68+
}

0 commit comments

Comments
 (0)