https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86285

--- Comment #1 from Peter Bergner <bergner at gcc dot gnu.org> ---
Setting a breakpoint at rs6000_mangle_type(tree type), I'm seeing:

(gdb) p type
$23 = (const_tree) 0x7ffff58413b0
(gdb) ptree type
 <real_type 0x7ffff58413b0 long double DF
    size <integer_cst 0x7ffff5741110 type <integer_type 0x7ffff58400a8
bitsizetype> constant 64>
    unit-size <integer_cst 0x7ffff5741128 type <integer_type 0x7ffff5840000
sizetype> constant 8>
    align:64 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type
0x7ffff58413b0 precision:64
    pointer_to_this <pointer_type 0x7ffff58418f0>>


...so somehow the __ieee128 is being changed into a long double and since we
said long double is 64-bits (ie, double), we have:

(gdb) p TYPE_MODE(type)
$24 = E_DFmode

which causes us to return NULL and we get the default mangling 'e' for long
double.

Reply via email to