diff options
author | David Majnemer <david.majnemer@gmail.com> | 2014-09-28 06:39:30 +0000 |
---|---|---|
committer | David Majnemer <david.majnemer@gmail.com> | 2014-09-28 06:39:30 +0000 |
commit | bb51300970b7623f552560c99f9704b1b1884830 (patch) | |
tree | 7b3b36696179d25fae87c9e0c2d53a9b9aa12b89 /lldb/source/Plugins/Process/Linux/ThreadStateCoordinator.cpp | |
parent | 6578f9208bd0e45337b9a34bba712e19c7b6cb86 (diff) | |
download | bcm5719-llvm-bb51300970b7623f552560c99f9704b1b1884830.tar.gz bcm5719-llvm-bb51300970b7623f552560c99f9704b1b1884830.zip |
CodeGen: Don't crash when initializing pointer-to-member fields in bases
Clang uses two types to talk about a C++ class, the
NonVirtualBaseLLVMType and the LLVMType. Previously, we would allow one
of these to be packed and the other not.
This is problematic. If both don't agree on a common subset of fields,
then routines like getLLVMFieldNo will point to the wrong field. Solve
this by copying the 'packed'-ness of the complete type to the
non-virtual subobject. For this to work, we need to take into account
the non-virtual subobject's size and alignment when we are computing the
layout of the complete object.
This fixes PR21089.
llvm-svn: 218577
Diffstat (limited to 'lldb/source/Plugins/Process/Linux/ThreadStateCoordinator.cpp')
0 files changed, 0 insertions, 0 deletions