re PR target/77924 (-mfloat128-type change broke AIX)
authorMichael Meissner <meissner@linux.vnet.ibm.com>
Tue, 11 Oct 2016 14:12:09 +0000 (14:12 +0000)
committerMichael Meissner <meissner@gcc.gnu.org>
Tue, 11 Oct 2016 14:12:09 +0000 (14:12 +0000)
2016-10-11  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/77924
* config/rs6000/rs6000.c (rs6000_init_builtins): Only create the
distinct __ibm128 IBM extended double type if long doubles are
128-bits and the default format for long double is IEEE 128-bit.

From-SVN: r240994

gcc/ChangeLog
gcc/config/rs6000/rs6000.c

index 3c15156a402c0ff78075e86d5dd097f3df7997ee..7143ebf42051665b2af1af2643f9137f8c9f66ae 100644 (file)
@@ -1,3 +1,10 @@
+2016-10-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
+
+       PR target/77924
+       * config/rs6000/rs6000.c (rs6000_init_builtins): Only create the
+       distinct __ibm128 IBM extended double type if long doubles are
+       128-bits and the default format for long double is IEEE 128-bit.
+
 2016-10-11  Richard Biener  <rguenther@suse.de>
 
        * dwarf2out.c (DEBUG_STR_OFFSETS_SECTION): Remove conditional.
index 8c7ab18224b928e8bf95543541af1b093ec14e2d..3a164e9b1c87f5c7d872bc0ba0e98506533e4c15 100644 (file)
@@ -16572,10 +16572,10 @@ rs6000_init_builtins (void)
      floating point, we need make sure the type is non-zero or else self-test
      fails during bootstrap.
 
-     We don't register a built-in type for __ibm128 or __float128 if the type
-     is the same as long double.  Instead we add a #define for __ibm128 or
-     __float128 in rs6000_cpu_cpp_builtins to long double.  */
-  if (TARGET_IEEEQUAD || !TARGET_LONG_DOUBLE_128)
+     We don't register a built-in type for __ibm128 if the type is the same as
+     long double.  Instead we add a #define for __ibm128 in
+     rs6000_cpu_cpp_builtins to long double.  */
+  if (TARGET_LONG_DOUBLE_128 && FLOAT128_IEEE_P (TFmode))
     {
       ibm128_float_type_node = make_node (REAL_TYPE);
       TYPE_PRECISION (ibm128_float_type_node) = 128;