The file Parser.cc, line 476, looks like this: const int funtag = tos[src].get_tag() & ~TC_MASK | TC_FUN12;
Because & binds stronger than |, the compiler parses this as: const int funtag = (tos[src].get_tag() & ~TC_MASK) | TC_FUN12; I believe this is incorrect, and the intention is this instead: const int funtag = tos[src].get_tag() & (~TC_MASK | TC_FUN12); Even if the former is the intended form, I suggest adding parentheses to clarify this (enabling full warnings emits a warning about this). Regards, Elias