File tree Expand file tree Collapse file tree 2 files changed +33
-0
lines changed
cpp/ql/test/query-tests/Likely Bugs/Arithmetic/IntMultToLong Expand file tree Collapse file tree 2 files changed +33
-0
lines changed Original file line number Diff line number Diff line change 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+ }
Original file line number Diff line number Diff line change 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'. |
You can’t perform that action at this time.
0 commit comments