qiucf added a comment.

In D109751#3191148 <https://reviews.llvm.org/D109751#3191148>, 
@hubert.reinterpretcast wrote:

> In D109751#3178494 <https://reviews.llvm.org/D109751#3178494>, @qiucf wrote:
>
>> Thanks for the reminder. Here GCC and Clang diverges in the handling of 
>> `__ibm128`/`__float128` and `long double`. Not sure whether GCC will 'fix' 
>> the behavior, but here (and in most of the use case in glibc headers) it's 
>> `__builtin_types_compatible_p(..., _Float128)` where GCC/Clang behaves the 
>> same.
>
> I thought Clang doesn't have `_Float128` yet; that's D111382 
> <https://reviews.llvm.org/D111382>, which makes `_Float128` act like 
> `__float128` (and, in turn, like `__ieee128`).
>
> With `-mabi=ieeelongdouble`:
>
>   extern char x[__builtin_types_compatible_p(long double, __float128) ? 1 : 
> -1]; // GCC accepts; Clang rejects
>
> https://godbolt.org/z/fGbY1Y1PT

I tried making them 'compatible', but that only affects to C (and C++ doesn't 
have this builtin), `std::is_same<long double, __float128>` still says they're 
different. Should that be an issue?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D109751

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to