summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.c-torture/compile/20011218-1.c
blob: bf63489b855854b8f3de509903572c007bc66ed1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/* This testcase failed on Alpha at -O2 because $27 hard register
   for the indirect call was exposed too early and reload couldn't
   allocate it for multiplication and division.  */

struct S {
  int a, b;
  void (*f) (long, int);
};

void foo (struct S *x)
{
  long c = x->a * 50;
  c /= (long) x->b;
  c *= (long) x->b;
  x->f (c, 0);
}