brintos

brintos / llvm-project-archived public Read only

0
0
Text · 818 B · f5a4d7a Raw
33 lines · plain
1// RUN: %clang_analyze_cc1 -analyzer-checker=core,optin.cplusplus.UninitializedObject -std=c++11 -fblocks -verify %s2 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