CWARN.NOEFFECT.UCMP.GE.MACROIneffective comparison of unsigned value in a macro is always trueThe CWARN.NOEFFECT.UCMP.GE.MACRO checker flags code in macros, in which there is a comparison of an unsigned value to zero that is always true. Vulnerability and riskIf 'a' is an unsigned value, the comparisons a >= 0 and 0 <= a are always true. These comparisons have no effect, so it's probable that design intent isn't being accomplished. Vulnerable code example1 #define POSITIVE_LOOP(x) while (x >= 0) x--; 2 3 int foo(unsigned int a) { 4 POSITIVE_LOOP(a); 5 return 0; 6 } Klocwork flags line 4, in which the macro POSITIVE_LOOP contains a condition that is always true. Related checkers |