From 66d76fc91e78c98c75ad9ef7f11758fc68988172 Mon Sep 17 00:00:00 2001 From: Michael Meissner Date: Tue, 11 Oct 2016 14:12:09 +0000 Subject: [PATCH] re PR target/77924 (-mfloat128-type change broke AIX) 2016-10-11 Michael Meissner 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 | 7 +++++++ gcc/config/rs6000/rs6000.c | 8 ++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3c15156a402..7143ebf4205 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2016-10-11 Michael Meissner + + 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 * dwarf2out.c (DEBUG_STR_OFFSETS_SECTION): Remove conditional. diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 8c7ab18224b..3a164e9b1c8 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; -- 2.30.2