https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69892

            Bug ID: 69892
           Summary: Missing -Wuninitialized warning
           Product: gcc
           Version: 6.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: trippels at gcc dot gnu.org
  Target Milestone: ---

markus@x4 tmp % cat bool.ii
void foo() {
  bool valid;
  while (valid)
    valid = false;
}

markus@x4 tmp % icpc -Wall -Wextra -c bool.ii
bool.ii(3): warning #592: variable "valid" is used before its value is set
    while (valid)
           ^

markus@x4 tmp % clang++ -Wall -Wextra -c bool.ii
bool.ii:2:8: warning: variable 'valid' is used uninitialized whenever function
'foo' is called [-Wsometimes-uninitialized]
  bool valid;
  ~~~~~^~~~~
bool.ii:3:10: note: uninitialized use occurs here
  while (valid)
         ^~~~~
bool.ii:2:13: note: initialize the variable 'valid' to silence this warning
  bool valid;
            ^
             = false
1 warning generated.
markus@x4 tmp % clang++ --analyze -c bool.ii
bool.ii:3:10: warning: Branch condition evaluates to a garbage value
  while (valid)
         ^~~~~
1 warning generated.
markus@x4 tmp % g++ -Wall -Wextra -c bool.ii
markus@x4 tmp %

Reply via email to