1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
int x; void __attribute__((noinline)) foo (void) { x = -x; } void __attribute__((const,noinline)) bar (void) { } int __attribute__((noinline)) test (int c) { int tmp = x; (c ? foo : bar) (); return tmp + x; } extern void abort (void); int main() { x = 1; if (test (1) != 0) abort (); return 0; }