[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.


More information about the cfe-commits mailing list