ID: cpp/unsigned-comparison-zero Kind: problem Security severity: Severity: warning Precision: very-high Tags: - maintainability - readability Query suites: - cpp-security-and-quality.qls
Click to see the query in the CodeQL repository
This rule finds expressions of the form x >= 0 where x is an unsigned value. This comparison is pointless as it will always yield 1.
Recommendation¶
Check the expression to see whether a different semantics was intended.
Example¶
typedef long long LONGLONG; int f(unsigned int u, LONGLONG l) { if(u > 0 || l >=0) //correct: unsigned value is check for > 0 return 23; return u >= 0; //wrong: unsigned values are always greater than or equal to 0 }