From 34ab9eb1f2be90a51f81e6730204cab2380584bc Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Sun, 11 Sep 2022 12:08:43 -0700 Subject: [PATCH] DEFINE: Don't label a declaration, for C99 compatibility. Thanks to Friedrich Beckmann for reporting the problem. Fixes: 36fc62cea799 ("macro: Coding style improvement in macro_tokens_from_string().")Fixes: b8f7ae6610f0 ("DEFINE: Improve error messages for parsing macro body.") --- src/language/control/define.c | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/src/language/control/define.c b/src/language/control/define.c index 7b1807be1e..c439c64571 100644 --- a/src/language/control/define.c +++ b/src/language/control/define.c @@ -139,19 +139,21 @@ parse_macro_body (struct lexer *lexer, struct macro_tokens *mts) break; case TOKENIZE_ERROR: - size_t start_offset = mt.syntax.string - body.ss.string; - size_t end_offset = start_offset + (mt.syntax.length ? mt.syntax.length - 1 : 0); - - const struct msg_location loc = { - .file_name = intern_new_if_nonnull (lex_get_file_name (lexer)), - .start = msg_point_advance (start, ss_buffer (body.ss.string, start_offset)), - .end = msg_point_advance (start, ss_buffer (body.ss.string, end_offset)), - .src = CONST_CAST (struct lex_source *, lex_source (lexer)), - }; - msg_at (SE, &loc, "%s", mt.token.string.string); - intern_unref (loc.file_name); - - ok = false; + { + size_t start_offset = mt.syntax.string - body.ss.string; + size_t end_offset = start_offset + (mt.syntax.length ? mt.syntax.length - 1 : 0); + + const struct msg_location loc = { + .file_name = intern_new_if_nonnull (lex_get_file_name (lexer)), + .start = msg_point_advance (start, ss_buffer (body.ss.string, start_offset)), + .end = msg_point_advance (start, ss_buffer (body.ss.string, end_offset)), + .src = CONST_CAST (struct lex_source *, lex_source (lexer)), + }; + msg_at (SE, &loc, "%s", mt.token.string.string); + intern_unref (loc.file_name); + + ok = false; + } break; } -- 2.30.2