Hi!
The second program also works with Clang, gcc etc., but not with tcc.
It tries to use stringification with a backslash, indirectly:
#include <stdio.h>
#define PRINT_(X) puts(#X);
#define PRINT(X) PRINT_(X)
int main(void)
{
PRINT(\\)
return 0;
}
Here the workaround is to use no indirection, to use PRINT_(\\) instead of
PRINT(\\) or to change the definition of PRINT to #define PRINT(X) puts(#X),
in which case the program prints the backslash as expected. However this
isn't a good workaround, as avoiding indirections in the macros can
sometimes be very annoying, luckily it worked in my program though.