1 #define MASK(N) ((1UL << (N)) - 1) 2 #define BITS(N) ((1UL << ((N) - 1)) + 2) 3 4 #define FUNC(N) void f##N(long j) { if ((j & MASK(N)) >= BITS(N)) abort();} 5 6 FUNC(3) 7 FUNC(4) 8 FUNC(5) 9 FUNC(6) 10 FUNC(7) 11 FUNC(8) 12 FUNC(9) 13 FUNC(10) 14 FUNC(11) 15 FUNC(12) 16 FUNC(13) 17 FUNC(14) 18 FUNC(15) 19 FUNC(16) 20 FUNC(17) 21 FUNC(18) 22 FUNC(19) 23 FUNC(20) 24 FUNC(21) 25 FUNC(22) 26 FUNC(23) 27 FUNC(24) 28 FUNC(25) 29 FUNC(26) 30 FUNC(27) 31 FUNC(28) 32 FUNC(29) 33 FUNC(30) 34 FUNC(31) 35 main()36int main () 37 { 38 f3(0); 39 f4(0); 40 f5(0); 41 f6(0); 42 f7(0); 43 f8(0); 44 f9(0); 45 f10(0); 46 f11(0); 47 f12(0); 48 f13(0); 49 f14(0); 50 f15(0); 51 f16(0); 52 f17(0); 53 f18(0); 54 f19(0); 55 f20(0); 56 f21(0); 57 f22(0); 58 f23(0); 59 f24(0); 60 f25(0); 61 f26(0); 62 f27(0); 63 f28(0); 64 f29(0); 65 f30(0); 66 f31(0); 67 68 exit(0); 69 } 70