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 <meiss...@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 <meiss...@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 <meiss...@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