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
}



