[Bug target/85657] Make __ibm128 a separate type, even if long double uses the IBM double-double format
meissner at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Jun 6 21:11:00 GMT 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85657
--- Comment #4 from Michael Meissner <meissner at gcc dot gnu.org> ---
Author: meissner
Date: Wed Jun 6 21:11:15 2018
New Revision: 261246
URL: https://gcc.gnu.org/viewcvs?rev=261246&root=gcc&view=rev
Log:
[gcc]
2018-06-06 Michael Meissner <meissner@linux.ibm.com>
* config/rs6000/rs6000.c (rs6000_passes_ieee128): New boolean to
track if we pass or return IEEE 128-bit floating point.
(ieee128_mangling_gcc_8_1): New boolean to say whether to generate
C++ mangling that is compatible with GCC 8.1.
(TARGET_ASM_GLOBALIZE_DECL_NAME): Override target hook.
(init_cumulative_args): Note if we pass or return IEEE 128-bit
floating point types.
(rs6000_function_arg_advance_1): Likewise.
(rs6000_mangle_type): Optionally generate mangled names that match
what GCC 8.1 generated for IEEE 128-bit floating point types.
(rs6000_globalize_decl_name): If we have an external function that
passes or returns IEEE 128-bit types, generate a weak reference
from the mangled name used in GCC 8.1 to the current mangled
name.
[gcc]
2018-06-05 Michael Meissner <meissner@linux.ibm.com>
* config/rs6000/rs6000.c (rs6000_init_builtins): Make __ibm128 use
the long double type if long double is IBM extended double. Make
__float128 use the long double type if long double is IEEE 128-bit.
[gcc/testsuite]
2018-06-05 Michael Meissner <meissner@linux.ibm.com>
PR target/85657
* g++.dg/pr85657.C: Only test whether __ibm128 and long double can
be used in templates. Don't check for them in overloaded functions.
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/rs6000/rs6000.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/pr85657.C
More information about the Gcc-bugs
mailing list