summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.c-torture/compile/20031220-1.c
blob: 026a2687fd695b4c377e4aabba628bed224d7b5d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/* PR optimization/13031  */
/* The following code used to ICE on alphaev67-*-* at -O2 with an
   unrecognizable instruction, caused by local register allocation
   substituting a register for a constant in a conditional branch.  */

void emit(int, int);
int f(void);
static int signals[5];

static inline void select(int sel, void *klass)
{
  emit(klass ? 0 : f(), signals[sel ? 0 : 1]);
}

void all(void *gil, void *l, void *icon)
{
  while (l)
    if (icon)
      select(0, gil);
}