[cfe-dev] CGRecordLayoutBuilder for MS ABI

Eli Friedman eli.friedman at gmail.com
Mon Oct 24 14:16:12 PDT 2011


On Mon, Oct 24, 2011 at 6:01 AM, r4start <r4start at gmail.com> wrote:
> Hi!
>
> This patch provides support for Microsoft ABI in CGRecordLayoutBuilder.
> Also it includes fix for RecordLayoutBuilder.

Given that you've added an assert that the vfptr is at the beginning
of a class, I'm wondering we're doing primary base computations
correctly; please add a testcase for something like following:

struct A { int a; };
struct B { int b; };
struct C : virtual public A { int c; };
struct D : public B, public C { virtual void f(); };
D* x;

General comment for the CGRecordLayoutBuilder changes: please make
sure code is indented correctly.

I'm not following why all the changes to the way we generate padding
are necessary; they don't seem to have any useful effect.  (LLVM
structs are not packed by default.)

-Eli



More information about the cfe-dev mailing list