Variable used in its own initializer¶
ID: cpp/use-in-own-initializer
Kind: problem
Security severity:
Severity: warning
Precision: high
Tags:
- maintainability
- correctness
Query suites:
- cpp-security-and-quality.qls
Click to see the query in the CodeQL repository
A variable is in scope in its own initializer, but it is undefined behavior to load from it before it is first assigned to.
Recommendation¶
Do not use a variable in its own initializer unless it is part of an address calculation or a sizeof
expression.
Example¶
int f() {
int x = x; // BAD: undefined behavior occurs here
x = 0;
return x;
}
int g() {
int x = 0; // GOOD
return x;
}