1 2 static int next_buffer = 0; 3 void bar (void); 4 5 static int t = 1, u = 0; 6 7 long foo(unsigned int offset)8foo (unsigned int offset) 9 { 10 unsigned i, buffer; 11 int x; 12 char *data; 13 14 i = u; 15 if (i) 16 return i * 0xce2f; 17 18 buffer = next_buffer; 19 data = buffer * 0xce2f; 20 for (i = 0; i < 2; i++) 21 bar (); 22 buffer = next_buffer; 23 return buffer * 0xce2f + offset; 24 25 } 26 27 void bar(void)28bar (void) 29 { 30 } 31 32 int main()33main () 34 { 35 if (foo (3) != 3) 36 abort (); 37 next_buffer = 1; 38 if (foo (2) != 0xce2f + 2) 39 abort (); 40 exit (0); 41 } 42