r198818 - [ms-abi] Refactor Microsoft Record Layout
Hans Wennborg
hans at chromium.org
Thu Jan 9 14:39:35 PST 2014
Hi Warren,
On Wed, Jan 8, 2014 at 4:30 PM, Warren Hunt <whunt at google.com> wrote:
> Author: whunt
> Date: Wed Jan 8 18:30:56 2014
> New Revision: 198818
>
> URL: http://llvm.org/viewvc/llvm-project?rev=198818&view=rev
> Log:
> [ms-abi] Refactor Microsoft Record Layout
>
> This patch refactors microsoft record layout to be more "natural". The
> most dominant change is that vbptrs and vfptrs are injected after the
> fact. This simplifies the implementation and the math for the offest
> for the first base/field after the vbptr.
This causes me to hit the following assertion when compiling C code in
MS ABI mode:
Assertion failed: CXXInfo && "Record layout does not have C++ specific
info!", file ..\tools\clang\include\clang/AST/RecordLayout.h, line 195
For example, the code below compiled with "clang -cc1 -cxx-abi
microsoft -triple i686-pc-win32" triggers the assert:
struct SubStruct {
short X, Y;
};
struct Quad {
int w;
struct SubStruct SS;
struct SubStruct *SSP;
char c;
int y;
};
static int F0(struct Quad Q) {
return Q.SS.Y;
}
More information about the cfe-commits
mailing list