From 8f9f3b4d3c0f86dce85df2aa12196dbb15e716f2 Mon Sep 17 00:00:00 2001 From: lemon Date: Sun, 22 Feb 2026 16:58:11 +0100 Subject: preprocessor: fix an edge case with erroneously recursive macro expansion --- test/07-pp.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'test') diff --git a/test/07-pp.c b/test/07-pp.c index dd179fb..b1afa17 100644 --- a/test/07-pp.c +++ b/test/07-pp.c @@ -50,6 +50,18 @@ struct crypto_ex_data_st { SKM_DEFINE_STACK_OF_INTERNAL(void, void, void) +char *strchr(const char *, int); +# define __glibc_const_generic(PTR, CTYPE, CALL) \ + _Generic (0 ? (PTR) : (void *) 1, \ + const void *: (CTYPE) (CALL), \ + default: CALL) +#define indir(s,c) strchr(s,c) +#define strchr(S, C) __glibc_const_generic (S, const char *, indir(S, C)) + +static void f(void) { + (void)strchr("",0); +} + #ifdef CMD_WORKING int main(V) -- cgit v1.2.3