[PATCH] D40673: Add _Float128 as alias to __float128 to enable compilations on Fedora27/glibc2-26

Hubert Tong via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri Dec 1 14:41:21 PST 2017


hubert.reinterpretcast added inline comments.


================
Comment at: lib/Frontend/InitPreprocessor.cpp:817
   DefineFloatMacros(Builder, "LDBL", &TI.getLongDoubleFormat(), "L");
+  DefineFloatMacros(Builder, "FLT128", &TI.getFloat128Format(), "Q");
+
----------------
GCC //does// define these macros under with C++ mode when it would for the C mode, but with the `F128` suffix (that it then interprets as a user-defined literal suffix). Use of these macros under C++ mode would behave differently between GCC and Clang until `Q` is replaced with `F128`.

In my experience, GCC on //does not// define these macros on platforms where `__float128` is unsupported. This includes `powerpc64le-linux-gnu` without the `-mfloat128` option.


================
Comment at: test/Sema/_Float128.c:2
+// RUN: %clang_cc1 -verify %s
+// RUN: %clang_cc1 -verify %s
+// RUN: %clang_cc1 -triple powerpc64-linux -verify %s
----------------
Duplicate run line


================
Comment at: test/Sema/_Float128.c:17
+#else
+_Float128 f;  // expected-error {{__float128 is not supported on this target}}
+int g(int x, _Float128 *y) {  // expected-error {{__float128 is not supported on this target}}
----------------
Add test that `__FLT128_EPSILON__` is not defined?


Repository:
  rL LLVM

https://reviews.llvm.org/D40673





More information about the cfe-commits mailing list