1 static int i, j; 2 3 static void __attribute__((noinline,noclone)) foo(void)4foo (void) { i = 1; } 5 6 static void __attribute__((noinline,noclone)) bar(void)7bar (void) { j = 1; } 8 9 typedef void (*fn_t)(void); 10 void escapeme (fn_t); 11 fn_t getme (void); 12 13 extern void link_error (void); 14 main()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