forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			33 lines
		
	
	
		
			818 B
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			818 B
		
	
	
	
		
			Plaintext
		
	
	
	
// RUN: %clang_analyze_cc1 -analyzer-checker=core,optin.cplusplus.UninitializedObject -std=c++11 -fblocks -verify %s
 | 
						|
 | 
						|
typedef void (^myBlock) ();
 | 
						|
 | 
						|
struct StructWithBlock {
 | 
						|
  int a;
 | 
						|
  myBlock z; // expected-note{{uninitialized field 'this->z'}}
 | 
						|
 | 
						|
  StructWithBlock() : a(0), z(^{}) {}
 | 
						|
 | 
						|
  // Miss initialization of field `z`.
 | 
						|
  StructWithBlock(int pA) : a(pA) {} // expected-warning{{1 uninitialized field at the end of the constructor call}}
 | 
						|
 | 
						|
};
 | 
						|
 | 
						|
void warnOnUninitializedBlock() {
 | 
						|
  StructWithBlock a(10);
 | 
						|
}
 | 
						|
 | 
						|
void noWarningWhenInitialized() {
 | 
						|
  StructWithBlock a;
 | 
						|
}
 | 
						|
 | 
						|
struct StructWithId {
 | 
						|
  int a;
 | 
						|
  id z; // expected-note{{uninitialized pointer 'this->z'}}
 | 
						|
  StructWithId() : a(0) {} // expected-warning{{1 uninitialized field at the end of the constructor call}}
 | 
						|
};
 | 
						|
 | 
						|
void warnOnUninitializedId() {
 | 
						|
  StructWithId s;
 | 
						|
}
 |