24 lines · cpp
1// RUN: %clang_cc1 -Wconditional-uninitialized -fsyntax-only %s -verify2 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 because15// the destructor in Foo fouls about the minor bit of path-sensitivity in16// -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