modernc.org/ccgo/v3@v3.16.14/lib/testdata/tcc-0.9.27/tests/pp/18.c (about) 1 #define M_RETI_ARG27(x,y,z,aa, ...) aa 2 #define M_RET_ARG27(...) M_RETI_ARG27(__VA_ARGS__) 3 #define M_COMMA_P(...) M_RET_ARG27(__VA_ARGS__, 1, 1, 0, useless) 4 #define M_EMPTYI_DETECT(...) 0, 1, 5 #define M_EMPTYI_P_C1(...) M_COMMA_P(M_EMPTYI_DETECT __VA_ARGS__ () ) 6 #define EX 7 #define empty(x) 8 #define fnlike(x) yeah x 9 /* If the following macro is called with empty arg (X183), the use 10 of 'x' between fnlike and '(' doesn't hinder the recognition of this 11 being a further fnlike macro invocation. */ 12 #define usefnlike(x) fnlike x (x) 13 X181 M_EMPTYI_P_C1() 14 X182 M_EMPTYI_P_C1(x) 15 X183 usefnlike()