| /* We used to ICE on this testcase: the address of bad_spill_regs is |
| only taken in a phi node, which we missed and cleared its TREE_ADDRESSABLE |
| flag. This gets revealed when the loop is completely unrolled, thus |
| exposing the addresses as ordinary statements. */ |
| |
| /* { dg-do compile } */ |
| /* { dg-options "-O1" } */ |
| |
| |
| typedef unsigned HARD_REG_SET[2]; |
| static HARD_REG_SET bad_spill_regs; |
| |
| void |
| order_regs_for_reload () |
| { |
| register int i; |
| |
| register unsigned *scan_tp_ = bad_spill_regs; |
| |
| for (i = 0; i < 2; i++) |
| *scan_tp_++ = 0; |
| |
| bad_spill_regs[0] |= 1; |
| } |