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); | |
} |