@@ -5631,7 +5631,9 @@ c_parser_compound_statement_nostart (c_p
location_t label_loc = UNKNOWN_LOCATION; /* Quiet warning. */
if (c_parser_next_token_is (parser, CPP_CLOSE_BRACE))
{
- add_debug_begin_stmt (c_parser_peek_token (parser)->location);
+ c_token *token = c_parser_peek_token (parser);
+ add_debug_begin_stmt (token->location);
+ c_parser_set_source_position_from_token (token);
c_parser_consume_token (parser);
return;
}
@@ -5804,6 +5806,7 @@ c_parser_compound_statement_nostart (c_p
}
if (last_label)
error_at (label_loc, "label at end of compound statement");
+ c_parser_set_source_position_from_token (c_parser_peek_token (parser));
c_parser_consume_token (parser);
/* Restore the value we started with. */
mark_valid_location_for_stdc_pragma (save_valid_for_pragma);
@@ -0,0 +1,14 @@
+/* PR gcov-profile/94029 */
+/* { dg-options "-ftest-coverage" } */
+/* { dg-do compile } */
+
+#define impl_test(name) void test_##name() { }
+impl_test(t1
+) impl_test(t2)
+
+int main()
+{
+ return 0;
+}
+
+/* { dg-final { run-gcov remove-gcda gcov-pr94029.c } } */