1// RUN: %clang_analyze_cc1 -analyzer-checker=core,optin.cplusplus.UninitializedObject -std=c++11 -fblocks -verify %s 2 3typedef void (^myBlock) (); 4 5struct StructWithBlock { 6 int a; 7 myBlock z; // expected-note{{uninitialized field 'this->z'}} 8 9 StructWithBlock() : a(0), z(^{}) {} 10 11 // Miss initialization of field `z`. 12 StructWithBlock(int pA) : a(pA) {} // expected-warning{{1 uninitialized field at the end of the constructor call}} 13 14}; 15 16void warnOnUninitializedBlock() { 17 StructWithBlock a(10); 18} 19 20void noWarningWhenInitialized() { 21 StructWithBlock a; 22} 23 24struct StructWithId { 25 int a; 26 id z; // expected-note{{uninitialized pointer 'this->z'}} 27 StructWithId() : a(0) {} // expected-warning{{1 uninitialized field at the end of the constructor call}} 28}; 29 30void warnOnUninitializedId() { 31 StructWithId s; 32} 33