Re: [cxx-abi-dev] Decimal Floating Point mangling was(Fw: [cxx-abi-dev] C++0x: Mangling of rvalue reference type)s
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [cxx-abi-dev] Decimal Floating Point mangling was(Fw: [cxx-abi-dev] C++0x: Mangling of rvalue reference type)s




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