Skip to content

Commit 3d8633f

Browse files
committed
C++: Additional test cases for the recursive bit of UnsignedGEZero.
1 parent 17c57dc commit 3d8633f

File tree

3 files changed

+48
-0
lines changed

3 files changed

+48
-0
lines changed

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

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,4 +112,22 @@ void myFunction() {
112112
assert(CHECK_RANGE(ui, 0, 10)); // reasonable use
113113
assert(UI >= ZERO); // violation (not detected)
114114
assert(ui GE 0); // violation
115+
116+
if ((unsigned char)si >= 0) { // violation
117+
}
118+
if ((unsigned char)(signed int)si >= 0) { // violation
119+
}
120+
if ((signed int)(unsigned char)si >= 0) { // violation
121+
}
122+
if ((unsigned char)(signed char)si >= 0) { // violation
123+
}
124+
if ((signed char)(unsigned char)si >= 0) {
125+
}
126+
127+
if ((signed int)(unsigned char)(signed int)si >= 0) { // violation
128+
}
129+
if ((signed char)(unsigned char)(signed int)si >= 0) {
130+
}
131+
if ((signed int)(unsigned char)(signed char)si >= 0) { // violation
132+
}
115133
}

cpp/ql/test/query-tests/Likely Bugs/Arithmetic/UnsignedGEZero/UnsignedGEZero.cpp

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,4 +112,22 @@ void myFunction() {
112112
assert(CHECK_RANGE(ui, 0, 10)); // reasonable use
113113
assert(UI >= ZERO); // violation (not detected)
114114
assert(ui GE 0); // violation
115+
116+
if ((unsigned char)si >= 0) { // violation
117+
}
118+
if ((unsigned char)(signed int)si >= 0) { // violation
119+
}
120+
if ((signed int)(unsigned char)si >= 0) { // violation
121+
}
122+
if ((unsigned char)(signed char)si >= 0) { // violation
123+
}
124+
if ((signed char)(unsigned char)si >= 0) {
125+
}
126+
127+
if ((signed int)(unsigned char)(signed int)si >= 0) { // violation
128+
}
129+
if ((signed char)(unsigned char)(signed int)si >= 0) {
130+
}
131+
if ((signed int)(unsigned char)(signed char)si >= 0) { // violation
132+
}
115133
}

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

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,12 @@
1414
| UnsignedGEZero.c:101:9:101:15 | ... >= ... | Pointless comparison of unsigned value to zero. |
1515
| UnsignedGEZero.c:111:9:111:15 | ... >= ... | Pointless comparison of unsigned value to zero. |
1616
| UnsignedGEZero.c:114:9:114:15 | ... >= ... | Pointless comparison of unsigned value to zero. |
17+
| UnsignedGEZero.c:116:6:116:27 | ... >= ... | Pointless comparison of unsigned value to zero. |
18+
| UnsignedGEZero.c:118:6:118:39 | ... >= ... | Pointless comparison of unsigned value to zero. |
19+
| UnsignedGEZero.c:120:6:120:39 | ... >= ... | Pointless comparison of unsigned value to zero. |
20+
| UnsignedGEZero.c:122:6:122:40 | ... >= ... | Pointless comparison of unsigned value to zero. |
21+
| UnsignedGEZero.c:127:6:127:51 | ... >= ... | Pointless comparison of unsigned value to zero. |
22+
| UnsignedGEZero.c:131:6:131:52 | ... >= ... | Pointless comparison of unsigned value to zero. |
1723
| UnsignedGEZero.cpp:40:6:40:12 | ... >= ... | Pointless comparison of unsigned value to zero. |
1824
| UnsignedGEZero.cpp:48:6:48:15 | ... >= ... | Pointless comparison of unsigned value to zero. |
1925
| UnsignedGEZero.cpp:54:6:54:12 | ... >= ... | Pointless comparison of unsigned value to zero. |
@@ -29,3 +35,9 @@
2935
| UnsignedGEZero.cpp:101:9:101:15 | ... >= ... | Pointless comparison of unsigned value to zero. |
3036
| UnsignedGEZero.cpp:111:9:111:15 | ... >= ... | Pointless comparison of unsigned value to zero. |
3137
| UnsignedGEZero.cpp:114:9:114:15 | ... >= ... | Pointless comparison of unsigned value to zero. |
38+
| UnsignedGEZero.cpp:116:6:116:27 | ... >= ... | Pointless comparison of unsigned value to zero. |
39+
| UnsignedGEZero.cpp:118:6:118:39 | ... >= ... | Pointless comparison of unsigned value to zero. |
40+
| UnsignedGEZero.cpp:120:6:120:39 | ... >= ... | Pointless comparison of unsigned value to zero. |
41+
| UnsignedGEZero.cpp:122:6:122:40 | ... >= ... | Pointless comparison of unsigned value to zero. |
42+
| UnsignedGEZero.cpp:127:6:127:51 | ... >= ... | Pointless comparison of unsigned value to zero. |
43+
| UnsignedGEZero.cpp:131:6:131:52 | ... >= ... | Pointless comparison of unsigned value to zero. |

0 commit comments

Comments
 (0)