SYMBOL_NAME_LABEL(X) X##:

In the linux kernel sources:
      #ifdef __STDC__
        #define SYMBOL_NAME_LABEL(X) X##:
      #else
        #define SYMBOL_NAME_LABEL(X) X/**/:
      #endif
    tcc is a STDC compiler and must handle 'X##:' case.
This commit is contained in:
seyko 2015-05-12 15:24:41 +03:00
parent 121e95d115
commit c52e1a9af5

View File

@ -3086,7 +3086,9 @@ static inline int *macro_twosharps(const int *ptr0)
/* given 'a##b', remove nosubsts preceding 'b' */
while ((t1 = *++ptr) == TOK_NOSUBST)
;
if (t1 && t1 != TOK_TWOSHARPS) {
if (t1 && t1 != TOK_TWOSHARPS
&& t1 != ':') /* 'a##:' don't build a new token */
{
TOK_GET(&t1, &ptr, &cv1);
if (t != TOK_PLCHLDR || t1 != TOK_PLCHLDR) {
paste_tokens(t, &cval, t1, &cv1);