Hi! On Mon, Jan 24, 2022 at 08:22:59PM +0100, Jakub Jelinek wrote: > In GCC 7.x and earlier, while it had -mabi=ieeelongdouble option, that option > was undocumented and unsupported. > In GCC 8.1 that option got documented and -mabi=ieeelongdouble long double > started > to be mangled as U10__float128. > In GCC 9 and backported to before 8.2 release, that mangling changed to > u9__ieee128 and a support for emitting compatibility mangling aliases have > been added.
u<source-name> is correct mangling (extended type). U<source-name> means extended qualifier, which is non-sensical in most contexts where it is used (it cannot demangle for example), and wrong everywhere. > So, the following patch just drops those aliases. Okay for trunk. Thanks! Do you want to backport this to any release branch? > gcc/ > * config/rs6000/rs6000-internal.h (rs6000_passes_ieee128): Don't > declare. > * config/rs6000/rs6000.cc (rs6000_passes_ieee128, > ieee128_mangling_gcc_8_1): Remove. > (TARGET_ASM_GLOBALIZE_DECL_NAME): Don't redefine. > (rs6000_mangle_type): Return "u9__ieee128" instead of > ieee128_mangling_gcc_8_1 ? "U10__float128" : "u9__ieee128". > (rs6000_globalize_decl_name): Remove. > * config/rs6000/rs6000-call.cc (init_cumulative_args, > rs6000_function_arg_advance_1): Don't set rs6000_passes_ieee128. I love deleting code :-) Segher