1extern __attribute__ ((__noreturn__)) void exit(int);
2extern __attribute__ ((__noreturn__)) void abort(void);
3__attribute__ ((__noinline__))
4int
5add512(int a, int *b)
6{
7  int c = a + 512;
8  if (c != 0)
9    *b = a;
10  return c;
11}
12
13__attribute__ ((__noinline__))
14int
15add513(int a, int *b)
16{
17  int c = a + 513;
18  if (c == 0)
19    *b = a;
20  return c;
21}
22
23int main(void)
24{
25  int b0 = -1;
26  int b1 = -1;
27  if (add512(-512, &b0) != 0 || b0 != -1 || add513(-513, &b1) != 0 || b1 != -513)
28    abort ();
29  exit (0);
30}
31