From 5bcdee9f0702e4f54897166250898475f0d26ca3 Mon Sep 17 00:00:00 2001 From: lemon Date: Wed, 10 Sep 2025 20:15:56 +0200 Subject: lex: stringify args in function macros --- test/pp.c | 2 ++ test/pp.h | 9 ++++++--- 2 files changed, 8 insertions(+), 3 deletions(-) (limited to 'test') diff --git a/test/pp.c b/test/pp.c index 2e6193e..f850c08 100644 --- a/test/pp.c +++ b/test/pp.c @@ -5,5 +5,7 @@ int main(void) { + printf("%s\n",STR ( ok /1 "\n"\n ;.& + 05.5)); hi(ADD(Foo, SQR(Bar+1))); } diff --git a/test/pp.h b/test/pp.h index e914800..5ac7aac 100644 --- a/test/pp.h +++ b/test/pp.h @@ -1,18 +1,21 @@ #ifndef GUARD #define GUARD +extern int printf(const char *, ...); extern warnhere(); #define Foo 9 void hi(int x) { - extern int printf(const char *, ...); printf("hi from header ;%d\n", x); } #if 1 #endif #elifndef Ww #define Bar 7 -#define SQR_(x) (x)*(x) -#define SQR(y) SQR_(y) +#define SQR_(x) ((x)*(x)) +#define SQR(y) SQR_(1+(y)-1) #define ADD(a,b) (a)+(b) +#define STR(h) #h #endif + +extern int printf(const char *, ...); -- cgit v1.2.3