[libc++] Replace __ppc64__ with __powerpc64__ and fix is_iec559 for non-ibm128
authorFangrui Song <i@maskray.me>
Tue, 22 Nov 2022 21:33:34 +0000 (13:33 -0800)
committerFangrui Song <i@maskray.me>
Tue, 22 Nov 2022 21:33:34 +0000 (13:33 -0800)
commit23023654be6c3c77a2a90611d19ea76788492704
tree76b8ec1bbdd173b53b89e3476f9d8618d20ad544
parentc1d53fe338cb9d977fda5749fc5ad2c4108f26d1
[libc++] Replace __ppc64__ with __powerpc64__ and fix is_iec559 for non-ibm128

The lowercase `__ppc64__` is not defined by non-darwin powerpc64 GCC, therefore
it lures users to write code which is not portable to GCC. Migrate to
`__powerpc64__` in preparation for undefining `__ppc64__`. `__powerpc64__` is
much more common than `__PPC64__`.

Update alignment_of.pass.cpp to use 1 unconditionally:
on powerpc-unknown-linux-gnu `alignof(bool) = _Alignof(bool) = __alignof(bool) = 1`.
The value 4 might be derived from an ancient Clang.

Change is_iec559 to true when long double uses uses IEEE 754 quadruple or double
precision (i.e. not ibm128).

Reviewed By: #libc, thesamesam, ldionne

Differential Revision: https://reviews.llvm.org/D137513
libcxx/include/limits
libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/is_iec559.pass.cpp
libcxx/test/std/utilities/meta/meta.unary.prop.query/alignment_of.pass.cpp