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

Reply via email to