[Bug target/71009] g++: ICE on modified gdb/valarith.c with -Ofast

egall at gwmail dot gwu.edu gcc-bugzilla@gcc.gnu.org
Mon Jul 11 17:55:00 GMT 2016


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

--- Comment #6 from Eric Gallager <egall at gwmail dot gwu.edu> ---
I investigated more. What's happening at ../../gcc/emit-rtl.c:1025 is that the
following assert is failing:

  gcc_assert (can_create_pseudo_p ());

This fails if and only if gen_reg_rtx is passed V2DImode as its mode parameter.
I tried editing emit-rtl.c to make the assert conditional, like this:

  if (mode != V2DImode)
    gcc_assert (can_create_pseudo_p ());

...but that only resulted in a different error:

valarith.c: In function ‘value* value_binop(value*, value*, exp_opcode)’:
valarith.c:1408:1: error: insn does not satisfy its constraints:
(insn 3157 1585 3158 192 (set (reg:V2DI 1029)
        (vec_concat:V2DI (mem/c:DI (reg/f:SI 7 sp) [50 %sfp+-64 S8 A128])
            (const_int 0 [0]))) valarith.c:1180 3653 {vec_concatv2di}
     (nil))

Breakpoint 1, internal_error (gmsgid=0x15ee807 "in %s, at %s:%d") at
../../gcc/diagnostic.c:1337
1337      va_start (ap, gmsgid);

Any ideas what's going on?


More information about the Gcc-bugs mailing list