1 static inline int foo(int * x,int y)2foo (int *x, int y) 3 { 4 int z = *x; 5 while (y > z) 6 z *= 2; 7 return z; 8 } 9 10 int main()11main () 12 { 13 int i; 14 for (i = 1; i < 17; i++) 15 { 16 int j; 17 int k; 18 j = foo (&i, 7); 19 if (i >= 7) 20 k = i; 21 else if (i >= 4) 22 k = 8 + (i - 4) * 2; 23 else if (i == 3) 24 k = 12; 25 else 26 k = 8; 27 if (j != k) 28 __builtin_abort (); 29 } 30 return 0; 31 } 32