[cxx-abi-dev] Decimal Floating Point mangling was(Fw: [cxx-abi-dev] C++0x: Mangling of rvalue reference type)s
Daveed Vandevoorde
daveed at edg.com
Wed Aug 15 14:24:43 UTC 2007
On Aug 15, 2007, at 10:04 AM, Michael Wong wrote:
[...]
> This is the area where the C++ Std differs from the C std.
> C++ Std has DFP as a class because of its preference and philosophy of
> introducing new ideas as classes, not as a builtin type as required
> by the
> C Std. However, some C++ compilers will need to start to accept
> many of
> these mangling in their ABI inorder to maintain C interoperability. We
> introduce many C99 concepts too into the C++ ABI even though they
> are not
> required from the C++ Std for simialr reasons.
>>
>> The later would just be encoded as length then name.
>> Of course this can be handled as "5.1.7 Compression ...
>> abbreviations for
>> certain common names".
>>
>> And this form is mentioned:
>> ... the following catalog of abbreviations of the form "Sx" are used:
>>
>> Or we just go with what Michael has and documented it well and
>> point to
>> the "right" way to do it next time?? (And who to blame. ;-)
> The library case will be mangled that way. But for C
> interoperability it
> won't work. This is to cover the case for vendors who actually wish to
> implement them as builtin types.
> (I would still be happy to accept the blame.)
But C doesn't mangle. So there is no interoperability issue there.
Furthermore, the C++ class can be (and should be?) made
representation-compatible with any native decimal floating-point type
available on the platform.
So I think Dennis is right: No special mangling code is needed here.
If a C++ compiler has native support, it should just disguise that
native support as a class type (from the ABI perspective, at least).
No?
Daveed
More information about the cxx-abi-dev
mailing list