On Wed, Jun 12, 2013 at 7:13 AM, Charles Davis <[email protected]> wrote:

>
> On Jun 11, 2013, at 4:05 PM, Reid Kleckner wrote:
>
> On Tue, Jun 11, 2013 at 5:52 PM, Richard Smith <[email protected]>wrote:
>
>> On Tue, Jun 11, 2013 at 3:44 AM, Benno Rice <[email protected]> wrote:
>> > Hi all,
>> >
>> > I've attached a patch to the bug at:
>> >
>> > http://llvm.org/bugs/show_bug.cgi?id=14984
>> >
>> > that implements the necessary glue to support __attribute__((ms_abi)).
>> >
>> > If anyone has any questions, please let me know off-list.
>>
>
> Does gcc intend for ms_abi to cover other ABI areas like struct layout?
>
>
>>  It's not clear to me that representing this as a separate calling
>> convention in Clang is the right approach. We support at least four
>> different calling conventions when targeting the MS ABI (__cdecl,
>> __fastcall, __stdcall, __thiscall); perhaps this attribute should be
>> mapped to the appropriate member from that set? What should
>> __attribute__((ms_abi)) do when we're targeting the MS ABI already?
>> (Do you get a canonically-different type, or the same type, or is it
>> an error?)
>
>
> What's lacking today is a way to get at the win64 convention in Clang or
> from LLVM when targetting a non-Windows platform.  LLVM might want to have
> a different internal name that's less vague that "ms_abi", though.
>
> You mean like in my patch here:
>
> http://llvm-reviews.chandlerc.com/D729
>
> ?
>

Yeah, that looks good to me.  :)

>From the docs, it seems attr(ms_abi) just maps to x86_64_win64cc and
x86_stdcallcc depending on the architecture:
http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html#index-g_t_0040code_007bsysv_005fabi_007d-attribute-2670
gcc also appears to support a sysv_abi attribute, which lets you use the
sysv CCs when targeting Windows.
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to