On 23 April 2015 at 19:15, Dan Olson via Digitalmars-d
<[email protected]> wrote:
> Iain Buclaw via Digitalmars-d <[email protected]> writes:
>>
>> (FYI - last time I checked GDC goes ahead and applied target-specific
>> mangling on-top of pragma(mangle).  So you can relax and assume
>> nothing about the target).
>
> So does LDC.
>
> Actually, DMD does too on OS X, but only for extern(C) - attention to
> func plughc.
>
> pragma(mangle, "plughc")   extern (C) void plughc();
> pragma(mangle, "plughd")   extern(D) void plughd();
> pragma(mangle, "plughcxx") extern(C++) void plughcxx();
>
> pragma(msg, plughc.mangleof);
> pragma(msg, plughd.mangleof);
> pragma(msg, plughcxx.mangleof);
>
> $ dmd -c showmangle.d
> plughc
> plughd
> plughcxx
>
> $ nm showmangle.o | grep plugh
>                  U _plughc
>                  U plughcxx
>                  U plughd
>
> Maybe this all needs to be left in implementation defined land?

There should *always* be a prefix there. ;-)

A 'nice to know' which is specific to GDC.  If you prefix
pragma(mangle) names with "*" then it will not apply target-dependent
prefixes.

Regards
Iain

Reply via email to