(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
spill-1.c
       1  /* This caused an ICE during register spilling when targeting thumb.
       2     There are 8 registers available for arithmetic operations (r0-r7)
       3     r7 is the frame pointer, and r0-r3 are used to pass arguments.
       4     Combine was extending the lives of the arguments (in r0-r3) up until the
       5     call to z. This leaves only 3 regs free which isn't enough to preform the
       6     doubleword addition.  */
       7  /* { dg-do compile } */
       8  /* { dg-options "-O2 -fno-omit-frame-pointer" } */
       9  void z(int);
      10  int foo(int a, int b, int c, int d, long long *q) 
      11  { 
      12    *q=*q+1; 
      13    z (a+b+c+d); 
      14  }
      15