[cfe-commits] [PATCH] Ignored calling conventions

Aaron Ballman aaron at aaronballman.com
Fri Sep 7 05:51:29 PDT 2012


On Fri, Sep 7, 2012 at 2:14 AM, NAKAMURA Takumi <geek4civic at gmail.com> wrote:
> Aaron, I forgot to mention fastcall. Shall we handle fastcall as well?

Yes, and __thiscall as well.  Basically, it seems like CC_Default is
what should be specified always on x64 for Windows.

This also brings up a mangling bug with x64 functions:

define linkonce_odr x86_thiscallcc i32
@"\01?f at foo@@QAEHXZ"(%class.foo* %this) nounwind align 2 {
PUBLIC	?f at foo@@QEAAHXZ					; foo::f

And a behavior bug with x86 C functions (but not x64!) in that MSVC
produces an error when you specify __thiscall on a non-class member
function.

But I think those are separate patches from this one.  I've filed two
bug reports about __thiscall behavior differences that have cropped up
during this endeavor (PR13791 and PR13792).

Latest patch attached addressing the other calling conventions and
adding a FIXME for retaining the original attribute spelling.

~Aaron
-------------- next part --------------
A non-text attachment was scrubbed...
Name: callconv.patch
Type: application/octet-stream
Size: 4578 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20120907/773e26c9/attachment.obj>


More information about the cfe-commits mailing list