[cfe-dev] Constructor & destructor name mangling for MS ABI.
Michael Spencer
bigcheesegs at gmail.com
Wed Nov 30 21:49:19 PST 2011
On Mon, Nov 7, 2011 at 1:42 AM, r4start <r4start at gmail.com> wrote:
> Here is a patch with test cases.
>
> - Dmitry.
This patch breaks with the following test case:
struct A {
A();
};
A::A() {}
The reason is that the Itanium ABI has different manglings for the
different types of constructors (base, complete, and some other weird
one). This patch mangles both the same way, thus later in the code
clang gets a GlobalAlias when it expects a Function.
I have looked into properly handling this, but it requires changing
how CGCXX generates constructors. It also requires that we figure out
exactly how the ms-abi handles base vs complete constructors. I
believe that when a base constructor is possibly different from the
complete constructor, you add an argument to the constructor which
specifies if it should construct everything.
- Michael Spencer
More information about the cfe-dev
mailing list