#include #include int noop (Lisp_Object x, ptrdiff_t n) { return 0; } int f (Lisp_Object x, ptrdiff_t n) { return FIXNUMP (x) && XFIXNUM (x) == n; } int g (Lisp_Object x, ptrdiff_t n) { return EQ (x, make_fixnum (n)); } int main (int argc, char **argv) { int sum = 0; int (*p) (Lisp_Object, ptrdiff_t) = argc % 3 == 0 ? noop : argc % 3 == 1 ? f : g; for (long i = 0; i < 10000000000; i++) sum += p (i & 1 ? Qnil : make_fixnum (i), i); return sum & 1; }