1static int i, j; 2 3static void __attribute__((noinline,noclone)) 4foo (void) { i = 1; } 5 6static void __attribute__((noinline,noclone)) 7bar (void) { j = 1; } 8 9typedef void (*fn_t)(void); 10void escapeme (fn_t); 11fn_t getme (void); 12 13extern void link_error (void); 14 15int main() 16{ 17 fn_t fn; 18 escapeme (foo); 19 fn = getme(); 20 21 i = 0; 22 fn(); 23 if (i != 1) 24 return 100; 25 j = 0; 26 fn(); 27 if (j != 0) 28 link_error (); 29 bar(); 30 if (j != 1) 31 return 200; 32 33 return 0; 34} 35