[PATCH] D50892: [analyzer][UninitializedObjectChecker] Correct dynamic type is acquired for record pointees

Umann Kristóf via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Aug 28 14:13:54 PDT 2018


Szelethus added inline comments.


================
Comment at: test/Analysis/cxx-uninitialized-object-inheritance.cpp:802
+struct DynTBase2 {
+  int x; // expected-note{{uninitialized field 'static_cast<struct DynTDerived2 *>(this->bptr)->DynTBase2::x'}}
+};
----------------
NoQ wrote:
> Mmm, what's the value of casting to derived type and then specifying that we access the field of the base type anyway? Isn't `this->bptr->x` exactly what the user needs to know(?)
True, but it's a one tough job to write `this->bptr->x` here and also a correct note message for...


================
Comment at: test/Analysis/cxx-uninitialized-object-inheritance.cpp:805
+struct DynTDerived2 : DynTBase2 {
+  int y; // expected-note{{uninitialized field 'static_cast<struct DynTDerived2 *>(this->bptr)->y'}}
+};
----------------
...this one. I'll see how I could achieve it without disrupting `FieldNode`'s interface too much.


https://reviews.llvm.org/D50892





More information about the cfe-commits mailing list