aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMichael Meissner <meissner@linux.vnet.ibm.com>2016-10-11 14:12:09 +0000
committerMichael Meissner <meissner@gcc.gnu.org>2016-10-11 14:12:09 +0000
commit66d76fc91e78c98c75ad9ef7f11758fc68988172 (patch)
tree81b2a4cbe2c6c10abe444be504eae93ba9724e33 /gcc
parent207f844e6e998d5f82589404bc82b11db99b6e83 (diff)
downloadgcc-66d76fc91e78c98c75ad9ef7f11758fc68988172.zip
gcc-66d76fc91e78c98c75ad9ef7f11758fc68988172.tar.gz
gcc-66d76fc91e78c98c75ad9ef7f11758fc68988172.tar.bz2
re PR target/77924 (-mfloat128-type change broke AIX)
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config/rs6000/rs6000.c8
2 files changed, 11 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3c15156..7143ebf 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index 8c7ab18..3a164e9 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -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;