blob: e875f1f45c473af0b04907013cbef68f966de9e7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
/* Test whether a partly call-clobbered register will be moved over a call.
Although the original test case didn't use any GNUisms, it proved
difficult to reduce without the named register extension. */
#if __SH64__ == 32
#define LOC asm ("r10")
#else
#define LOC
#endif
unsigned int foo (char *c, unsigned int x, unsigned int y)
{
register unsigned int z LOC;
sprintf (c, "%d", x / y);
z = x + 1;
return z / (y + 1);
}
int main ()
{
char c[16];
if (foo (c, ~1U, 4) != (~0U / 5))
abort ();
exit (0);
}
|