Home | History | Annotate | Download | only in SemaCXX
      1 // RUN: %clang_cc1 -fsyntax-only -Wconditional-uninitialized -fsyntax-only %s -verify
      2 
      3 class Foo {
      4 public:
      5   Foo();
      6   ~Foo();
      7   operator bool();
      8 };
      9 
     10 int bar();
     11 int baz();
     12 int init(double *);
     13 
     14 // This case flags a false positive under -Wconditional-uninitialized because
     15 // the destructor in Foo fouls about the minor bit of path-sensitivity in
     16 // -Wuninitialized.
     17 double test() {
     18   double x; // expected-note{{initialize the variable 'x' to silence this warning}}
     19   if (bar() || baz() || Foo() || init(&x))
     20     return 1.0;
     21 
     22   return x; // expected-warning {{variable 'x' may be uninitialized when used here}}
     23 }
     24