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