1// RUN: %clang_cc1 -fsyntax-only -Wconditional-uninitialized -fsyntax-only %s -verify 2 3class Foo { 4public: 5 Foo(); 6 ~Foo(); 7 operator bool(); 8}; 9 10int bar(); 11int baz(); 12int 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. 17double 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