> Almost right.  Don't try to mangle non-extern C C++ symbols, as in things
> that return true for shouldMangleCXXName().  This test case gives the symbol
> ?foo@Foo@@QAGXXZ, which demangles to (public: void __stdcall
> Foo::foo(void)), which already includes the calling convention anyway.
>
> struct Foo {
>   void __stdcall foo();
> };
> void Foo::foo() {}
>
> Feel free to commit with that fixed.

The code was already handling that, but looking at it I found that it
would get confused with corner cases like

extern "C" void __stdcall operator++(Foo &x).

To be fair, it look like gcc and cl get confused too. I have update
the patch. Would you mind one final review? Thanks.

Cheers,
Rafael

Attachment: t.patch
Description: Binary data

_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to