In fact, identifiers containing __ are reserved by the implementation. You are not permitted to define or undefine or redefine them. In addition to undefining __BIG_ENDIAN__ and __LITTLE_ENDIAN__ in il_endian.h, there are many places in the ResIL code where such identifiers are defined. There are other identifier naming patterns that are also reserved. You should check if you're using any of those as well.