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 6FUNC(3) 7FUNC(4) 8FUNC(5) 9FUNC(6) 10FUNC(7) 11FUNC(8) 12FUNC(9) 13FUNC(10) 14FUNC(11) 15FUNC(12) 16FUNC(13) 17FUNC(14) 18FUNC(15) 19FUNC(16) 20FUNC(17) 21FUNC(18) 22FUNC(19) 23FUNC(20) 24FUNC(21) 25FUNC(22) 26FUNC(23) 27FUNC(24) 28FUNC(25) 29FUNC(26) 30FUNC(27) 31FUNC(28) 32FUNC(29) 33FUNC(30) 34FUNC(31) 35 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