// RUN: %clang_cc1 -fsyntax-only -Wconditional-uninitialized -fsyntax-only %s -verify class Foo { public: Foo(); ~Foo(); operator bool(); }; int bar(); int baz(); int init(double *); // This case flags a false positive under -Wconditional-uninitialized because // the destructor in Foo fouls about the minor bit of path-sensitivity in // -Wuninitialized. double test() { double x; // expected-note{{initialize the variable 'x' to silence this warning}} if (bar() || baz() || Foo() || init(&x)) return 1.0; return x; // expected-warning {{variable 'x' may be uninitialized when used here}} }