From bb25989e09d9cd194c24faacb70289cc12510fb1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Marjam=C3=A4ki?= Date: Fri, 13 Dec 2024 18:00:38 +0100 Subject: [PATCH] Fixup #397 (Debracket macro not expanded) --- simplecpp.cpp | 1 + test.cpp | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/simplecpp.cpp b/simplecpp.cpp index 050a5d08..604bdd19 100755 --- a/simplecpp.cpp +++ b/simplecpp.cpp @@ -2056,6 +2056,7 @@ namespace simplecpp { if (tok->next->op == '(') tok2 = appendTokens(&tokens, loc, tok->next, macros, expandedmacros, parametertokens); else if (expandArg(&tokens, tok->next, loc, macros, expandedmacros, parametertokens)) { + tokens.front()->location = loc; if (tokens.cfront()->next && tokens.cfront()->next->op == '(') tok2 = tok->next; } diff --git a/test.cpp b/test.cpp index bf83763e..97686aec 100644 --- a/test.cpp +++ b/test.cpp @@ -833,6 +833,12 @@ static void define_define_21() // #397 DEBRACKET macro "#define B(val) val\n" "A\n"; ASSERT_EQUALS("\n\n\nB ( 2 )", preprocess(code2)); + + const char code3[] = "#define __GET_ARG2_DEBRACKET(ignore_this, val, ...) __DEBRACKET val\n" + "#define __DEBRACKET(...) __VA_ARGS__\n" + "#5 \"a.c\"\n" + "__GET_ARG2_DEBRACKET(432 (33), (B))\n"; + ASSERT_EQUALS("\n#line 5 \"a.c\"\nB", preprocess(code3)); } static void define_va_args_1()