Currently the ItaniumRecordLayoutBuilder when laying out base classes has the virtual and non-virtual bases mixed up when pulling the base class layouts from the external source. This came up in an LLDB bug where on arm64 because of differences in how it deals with tail padding would layout the bases differently without the correct layout from the external source (LLDB). This would result in some fields being off by 4 bytes. Differential Revision: https://reviews.llvm.org/D83008
14 lines
110 B
C++
14 lines
110 B
C++
struct B1 {
|
|
char f1;
|
|
};
|
|
|
|
struct alignas(8) B2 {
|
|
char f2;
|
|
};
|
|
|
|
struct D : B1, B2 {};
|
|
|
|
D d3g;
|
|
|
|
int main() {}
|