forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			24 lines
		
	
	
		
			611 B
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			24 lines
		
	
	
		
			611 B
		
	
	
	
		
			C++
		
	
	
	
// 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}}
 | 
						|
}
 |