[CodeGen][MSan] Don't use offsets of zero-sized fields
authorVitaly Buka <vitalybuka@google.com>
Sat, 5 Dec 2020 07:47:11 +0000 (23:47 -0800)
committerVitaly Buka <vitalybuka@google.com>
Mon, 7 Dec 2020 21:37:40 +0000 (13:37 -0800)
commit3e1cb0db8a79b19996fcea210b639fe513a5eaf3
tree22369afc846f716263876598972f242293d20016
parentc102c783cd08cb1bf9119fe33cce34f6d1563881
[CodeGen][MSan] Don't use offsets of zero-sized fields

Such fields will likely have offset zero making
__sanitizer_dtor_callback poisoning wrong regions.
E.g. it can poison base class member from derived class constructor.

Differential Revision: https://reviews.llvm.org/D92727
clang/lib/CodeGen/CGClass.cpp
clang/test/CodeGenCXX/sanitize-dtor-zero-size-field.cpp