Skip to content

Commit 229da0a

Browse files
committed
C++: Add testcase demonstrating false negative
1 parent 9ed1510 commit 229da0a

File tree

1 file changed

+11
-0
lines changed
  • cpp/ql/test/query-tests/Likely Bugs/Arithmetic/IntMultToLong

1 file changed

+11
-0
lines changed

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

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,4 +106,15 @@ void g(unsigned char uchar1, unsigned char uchar2, unsigned char uchar3, int i)
106106
ulong5 = (uchar1 + (1 << 30)) * uchar2; // BAD [NOT DETECTED]
107107
ulong5 = uchar1 * uchar1 * uchar1 * uchar2 * uchar2 * uchar2; // BAD [NOT DETECTED]
108108
ulong5 = (uchar1 + (unsigned short)(-1)) * (uchar2 + (unsigned short)(-1)); // BAD
109+
}
110+
111+
struct A {
112+
short s;
113+
int i;
114+
};
115+
116+
void g2(struct A* a, short n) {
117+
unsigned long ulong1, ulong2;
118+
ulong1 = (a->s - 1) * ((*a).s + 1); // GOOD
119+
ulong2 = a->i * (*a).i; // BAD
109120
}

0 commit comments

Comments
 (0)