← 返回首页
Unsigned comparison to zero — CodeQL query help documentation CodeQL docs
CodeQL documentation
CodeQL resources

Unsigned comparison to zero

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 }

References