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
This commit is contained in:
Michael Meissner 2016-10-11 14:12:09 +00:00 committed by Michael Meissner
parent 207f844e6e
commit 66d76fc91e
2 changed files with 11 additions and 4 deletions

View 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.

View 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;