Comment 26 for bug 1988710

Revision history for this message
In , Ubizjak (ubizjak) wrote :

Testcase:

void
do_console (unsigned short *vga)
{
  vga[0] = 'H';
  vga[1] = 'e';
  vga[2] = 'l';
  vga[3] = 'l';
  vga[4] = 'o';
}

cc1 -O2 -mbuild-constants:

during RTL pass: expand
pr106966.c: In function ‘do_console’:
pr106966.c:4:10: internal compiler error: in emit_move_insn, at expr.cc:4052
    4 | vga[0] = 'H';
      | ~~~~~~~^~~~~
0x5ed664 emit_move_insn(rtx_def*, rtx_def*)
        ../../git/gcc/gcc/expr.cc:4052
0x113a708 alpha_emit_set_long_const
        ../../git/gcc/gcc/config/alpha/alpha.cc:2090
0x113abfc alpha_split_const_mov(machine_mode, rtx_def**)
        ../../git/gcc/gcc/config/alpha/alpha.cc:2204
0x113ade7 alpha_expand_mov(machine_mode, rtx_def**)
        ../../git/gcc/gcc/config/alpha/alpha.cc:2250
0x15510a8 gen_movv4hi(rtx_def*, rtx_def*)
        ../../git/gcc/gcc/config/alpha/alpha.md:4463
...

(gdb) bt
#0 internal_error (gmsgid=gmsgid@entry=0x1a9cf85 "in %s, at %s:%d") at ../../git/gcc/gcc/diagnostic.cc:2107
#1 0x00000000007918d6 in fancy_abort (file=file@entry=0x1910cf9 "../../git/gcc/gcc/expr.cc", line=line@entry=4052,
    function=function@entry=0x1a23a78 "emit_move_insn") at ../../git/gcc/gcc/diagnostic.cc:2211
#2 0x00000000005ed665 in emit_move_insn (x=<optimized out>, y=<optimized out>) at ../../git/gcc/gcc/expr.cc:4052
#3 0x000000000113a709 in alpha_emit_set_long_const (target=0x7fffea2ef9f0, c1=7077888) at ../../git/gcc/gcc/config/alpha/alpha.cc:2090
#4 0x000000000113abfd in alpha_split_const_mov (mode=E_V4HImode, operands=0x7fffffffd5a0) at ../../git/gcc/gcc/config/alpha/alpha.cc:2204
#5 0x000000000113ade8 in alpha_expand_mov (mode=E_V4HImode, operands=0x7fffffffd5a0) at ../../git/gcc/gcc/config/alpha/alpha.cc:2250
#6 0x00000000015510a9 in gen_movv4hi (operand0=0x7fffea2ef9f0, operand1=0x7fffea29ebc0) at ../../git/gcc/gcc/config/alpha/alpha.md:4463

(gdb) f 3
#3 0x000000000113a709 in alpha_emit_set_long_const (target=0x7fffea2ef9f0, c1=7077888) at ../../git/gcc/gcc/config/alpha/alpha.cc:2090
2090 emit_move_insn (target, gen_rtx_PLUS (DImode, target, GEN_INT (d3)));
(gdb) p debug_rtx (target)
(reg:V4HI 71)
$1 = void