Skip to content

Commit da7da80

Browse files
committed
C++: Add pseudo-buildless test cases (some missing declarations).
1 parent be9c1d0 commit da7da80

File tree

2 files changed

+33
-0
lines changed

2 files changed

+33
-0
lines changed
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
// semmle-extractor-options: --expect_errors
2+
3+
void test_float_double1(float f, double d) {
4+
float r1 = f * f; // GOOD
5+
float r2 = f * d; // GOOD
6+
double r3 = f * f; // BAD
7+
double r4 = f * d; // GOOD
8+
9+
float f1 = fabsf(f * f); // GOOD [FALSE POSITIVE]
10+
float f2 = fabsf(f * d); // GOOD
11+
double f3 = fabs(f * f); // BAD
12+
double f4 = fabs(f * d); // GOOD
13+
}
14+
15+
double fabs(double f);
16+
float fabsf(float f);
17+
18+
void test_float_double2(float f, double d) {
19+
float r1 = f * f; // GOOD
20+
float r2 = f * d; // GOOD
21+
double r3 = f * f; // BAD
22+
double r4 = f * d; // GOOD
23+
24+
float f1 = fabsf(f * f); // GOOD
25+
float f2 = fabsf(f * d); // GOOD
26+
double f3 = fabs(f * f); // BAD
27+
double f4 = fabs(f * d); // GOOD
28+
}

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
| Buildless.c:6:17:6:21 | ... * ... | Multiplication result may overflow 'float' before it is converted to 'double'. |
2+
| Buildless.c:9:22:9:26 | ... * ... | Multiplication result may overflow 'float' before it is converted to 'double'. |
3+
| Buildless.c:11:22:11:26 | ... * ... | Multiplication result may overflow 'float' before it is converted to 'double'. |
4+
| Buildless.c:21:17:21:21 | ... * ... | Multiplication result may overflow 'float' before it is converted to 'double'. |
5+
| Buildless.c:26:22:26:26 | ... * ... | Multiplication result may overflow 'float' before it is converted to 'double'. |
16
| IntMultToLong.c:4:10:4:14 | ... * ... | Multiplication result may overflow 'int' before it is converted to 'long long'. |
27
| IntMultToLong.c:7:16:7:20 | ... * ... | Multiplication result may overflow 'int' before it is converted to 'long long'. |
38
| IntMultToLong.c:18:19:18:23 | ... * ... | Multiplication result may overflow 'float' before it is converted to 'double'. |

0 commit comments

Comments
 (0)