| extern __attribute__ ((__noreturn__)) void exit(int); | |
| extern __attribute__ ((__noreturn__)) void abort(void); | |
| __attribute__ ((__noinline__)) | |
| int | |
| add512(int a, int *b) | |
| { | |
| int c = a + 512; | |
| if (c != 0) | |
| *b = a; | |
| return c; | |
| } | |
| __attribute__ ((__noinline__)) | |
| int | |
| add513(int a, int *b) | |
| { | |
| int c = a + 513; | |
| if (c == 0) | |
| *b = a; | |
| return c; | |
| } | |
| int main(void) | |
| { | |
| int b0 = -1; | |
| int b1 = -1; | |
| if (add512(-512, &b0) != 0 || b0 != -1 || add513(-513, &b1) != 0 || b1 != -513) | |
| abort (); | |
| exit (0); | |
| } |