The compiler does not recognize the trigraph sequence ??! as equal to |.
In some cases the compiler fails to replace the %: sequence. Example:
#if (4 == 9) #include <string.h> %:endif ^----------------------------- ERROR (missing endif directive)