File tree Expand file tree Collapse file tree 2 files changed +40
-1
lines changed
cpp/ql/test/query-tests/Likely Bugs/Arithmetic/PointlessComparison Expand file tree Collapse file tree 2 files changed +40
-1
lines changed Original file line number Diff line number Diff line change 5050| PointlessComparison.cpp:43:6:43:29 | ... >= ... | Comparison is always true because ... >> ... >= 140737488355327.5. |
5151| PointlessComparison.cpp:44:6:44:28 | ... >= ... | Comparison is always true because ... >> ... >= 140737488355327.5. |
5252| RegressionTests.cpp:57:7:57:22 | ... <= ... | Comparison is always true because * ... <= 4294967295. |
53+ | RegressionTests.cpp:89:7:89:14 | ... == ... | Comparison is always false because val <= -0. |
54+ | RegressionTests.cpp:107:7:107:14 | ... == ... | Comparison is always false because val <= -0. |
55+ | RegressionTests.cpp:116:7:116:14 | ... == ... | Comparison is always false because val <= -0. |
5356| Templates.cpp:9:10:9:24 | ... <= ... | Comparison is always true because local <= 32767. |
Original file line number Diff line number Diff line change @@ -79,4 +79,40 @@ int containsIfDef(int x) {
7979#endif
8080
8181 return result >= 0 ;
82- }
82+ }
83+
84+ void negativeZero1 (int val) {
85+ if (val >= 0 )
86+ {
87+ val = -val;
88+ }
89+ if (val == 0 ) // GOOD [FALSE POSITIVE]
90+ ;
91+ }
92+
93+ void negativeZero2 (int val) {
94+ if (val >= 0 )
95+ {
96+ val = 0 - val;
97+ }
98+ if (val == 0 ) // GOOD
99+ ;
100+ }
101+
102+ void negativeZero3 (int val) {
103+ if (val >= 0 )
104+ {
105+ val *= -1 ;
106+ }
107+ if (val == 0 ) // GOOD [FALSE POSITIVE]
108+ ;
109+ }
110+
111+ void negativeZero4 (int val) {
112+ if (val >= 0 )
113+ {
114+ val = val * -1 ;
115+ }
116+ if (val == 0 ) // GOOD [FALSE POSITIVE]
117+ ;
118+ }
You can’t perform that action at this time.
0 commit comments