This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug rtl-optimization/65693] ICE in assign_by_spills, at lra-assigns.c:1419


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

--- Comment #5 from Markus Trippelsdorf <trippels at gcc dot gnu.org> ---
Well, this testcase only ICEs with gcc-5:

markus@x4 tmp % < foo.ii
int a, b;
unsigned c;
static void
invoke_copy_to_stack (unsigned long *p1, int, int)
{
  for (; b;)
    if (a)
      *p1 = 0;
}

void
VBoxNsxpXPTC_InvokeByIndex ()
{
  unsigned long *d = (unsigned long *) __builtin_alloca (c);
  invoke_copy_to_stack (d, 0, 0);
  register int e asm("rdx")
      = ((int (*) (int, int, int, int, int, int)) 0)(0, 0, e, 0, 0, 0);
}

markus@x4 tmp % g++ -O -c foo.ii
foo.ii: In function âvoid VBoxNsxpXPTC_InvokeByIndex()â:
foo.ii:18:1: error: unable to find a register to spill
 }
 ^
foo.ii:18:1: error: this is the insn:
(insn 9 8 10 2 (parallel [
            (set (reg:DI 98)
                (udiv:DI (reg:DI 96)
                    (reg:DI 106)))
            (set (reg:DI 109 [99])
                (umod:DI (reg:DI 96)
                    (reg:DI 106)))
            (clobber (reg:CC 17 flags))
        ]) foo.ii:14 352 {*udivmoddi4}
     (expr_list:REG_UNUSED (reg:DI 109 [99])
        (expr_list:REG_DEAD (reg:DI 106)
            (expr_list:REG_DEAD (reg:DI 96)
                (expr_list:REG_UNUSED (reg:CC 17 flags)
                    (nil))))))
foo.ii:18: confused by earlier errors, bailing out

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]