diff options
author | Michael Meissner <meissner@linux.vnet.ibm.com> | 2016-10-11 14:12:09 +0000 |
---|---|---|
committer | Michael Meissner <meissner@gcc.gnu.org> | 2016-10-11 14:12:09 +0000 |
commit | 66d76fc91e78c98c75ad9ef7f11758fc68988172 (patch) | |
tree | 81b2a4cbe2c6c10abe444be504eae93ba9724e33 /gcc | |
parent | 207f844e6e998d5f82589404bc82b11db99b6e83 (diff) | |
download | gcc-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/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.c | 8 |
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; |