1 extern void abort (void); 2 3 void __attribute__((noinline)) bar(int ** p)4bar (int **p) 5 { 6 float *q = (float *)p; 7 *q = 0.0; 8 } 9 10 float __attribute__((noinline)) foo(int b)11foo (int b) 12 { 13 int *i = 0; 14 float f = 1.0; 15 int **p; 16 if (b) 17 p = &i; 18 else 19 p = (int **)&f; 20 bar (p); 21 if (b) 22 return **p; 23 return f; 24 } 25 main()26int main() 27 { 28 if (foo(0) != 0.0) 29 abort (); 30 return 0; 31 } 32 33