[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