1 extern __attribute__ ((__noreturn__)) void exit(int); 2 extern __attribute__ ((__noreturn__)) void abort(void); 3 __attribute__ ((__noinline__)) 4 int add512(int a,int * b)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__)) 14 int add513(int a,int * b)15add513(int a, int *b) 16 { 17 int c = a + 513; 18 if (c == 0) 19 *b = a; 20 return c; 21 } 22 main(void)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