1 int a = 0; 2 int d = 1; 3 int f = 1; 4 fn1()5int fn1() { 6 return a || 1 >> a; 7 } 8 fn2(int p1,int p2)9int fn2(int p1, int p2) { 10 return p2 >= 2 ? p1 : p1 >> 1; 11 } 12 fn3(int p1)13int fn3(int p1) { 14 return d ^ p1; 15 } 16 fn4(int p1,int p2)17int fn4(int p1, int p2) { 18 return fn3(!d > fn2((f = fn1() - 1000) || p2, p1)); 19 } 20 main()21int main() { 22 if (fn4(0, 0) != 1) 23 __builtin_abort (); 24 return 0; 25 } 26