[PATCH] D64067: [X86][PPC] Support -mlong-double-64

Hal Finkel via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Wed Jul 3 11:25:50 PDT 2019


hfinkel added a comment.

In D64067#1568888 <https://reviews.llvm.org/D64067#1568888>, @rnk wrote:

> In D64067#1568533 <https://reviews.llvm.org/D64067#1568533>, @andrew.w.kaylor wrote:
>
> > In this review (https://reviews.llvm.org/D6260) @rsmith mentions that this should also have an effect on name mangling.
>
>
> I'm not sure that's consistent with GCC, at least not anymore:
>  https://gcc.godbolt.org/z/eUviCd
>  Looks like you can still have an overload set with double and long double, even if they both use the same representation.


It has to work that way, because they're different, standard language-level types.

One thing to realize about these flags is that they're ABI-altering flags. If the user provides the flag to alter the platform defaults, this only works if the user also ensures that matches the ABI of the relevant system libraries that the compiler is using (e.g., because the user is explicitly linking with a suitable libc).

> This is a backend -m flag, after all, so that seems reasonable to me.
> 
>> What will this do if the user calls a library function that expects a long double? What does gcc do in that case?
> 
> Looks like it passes according to the usual 64-bit IEEE double representation.




Repository:
  rC Clang

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D64067/new/

https://reviews.llvm.org/D64067





More information about the cfe-commits mailing list