static int i, j; | |
static void __attribute__((noinline,noclone)) | |
foo (void) { i = 1; } | |
static void __attribute__((noinline,noclone)) | |
bar (void) { j = 1; } | |
typedef void (*fn_t)(void); | |
void escapeme (fn_t); | |
fn_t getme (void); | |
extern void link_error (void); | |
int main() | |
{ | |
fn_t fn; | |
escapeme (foo); | |
fn = getme(); | |
i = 0; | |
fn(); | |
if (i != 1) | |
return 100; | |
j = 0; | |
fn(); | |
if (j != 0) | |
link_error (); | |
bar(); | |
if (j != 1) | |
return 200; | |
return 0; | |
} |