From c52e1a9af516364442c399d98d9e729a288070e3 Mon Sep 17 00:00:00 2001 From: seyko Date: Tue, 12 May 2015 15:24:41 +0300 Subject: [PATCH] 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. --- tccpp.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tccpp.c b/tccpp.c index 1c03febf..c71edf34 100644 --- a/tccpp.c +++ b/tccpp.c @@ -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);