https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88596
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2019-02-06 Ever confirmed|0 |1 --- Comment #7 from Jakub Jelinek <jakub at gcc dot gnu.org> --- The above testcase reproduced, reduced to following, started with r266385. Note, this testcase ICEd in gcc 7.x and earlier too, got fixed with r258504 (started with r225484). So, this testcase is effectively [7/9 Regression]. /* { dg-do compile } */ /* { dg-options "-O1 -fschedule-insns -fselective-scheduling -fno-tree-ter" } */ /* { dg-additional-options "-maccumulate-outgoing-args" { target i?86-*-* x86_64-*-* } } */ void bar (); void baz (); void qux (); _Complex char a, b, c, d, e, f, g, h, i, j, k, l, m, n, o; void foo () { bar (b, c, d, e, 5); baz (4, a, b, c, d); baz (5, a, b, c, d, e); baz (b, c, d, e, f); baz (b, c, d, e, f, g); baz (b, c, d, e, f, g, h); baz (b, c, d, e, f, g, h, i); baz (j); baz (i, j, h, i, j, k, l, m, n, o); qux (e, g, i, k, m, o); } The ICE in 6.x/7.x used to be like: pr88596.c: In function ‘foo’: pr88596.c:19:1: error: unable to find a register to spill } ^ pr88596.c:19:1: error: this is the insn: (insn 23 381 380 2 (set (zero_extract:SI (reg:SI 226 [orig:195 D.1795+1 ] [195]) (const_int 8 [0x8]) (const_int 8 [0x8])) (reg:SI 227)) pr88596.c:9 115 {insvsi_1} (expr_list:REG_DEAD (reg:SI 227) (nil))) pr88596.c:19:1: internal compiler error: in assign_by_spills, at lra-assigns.c:1417