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()