From c2cf58f0e3a32b803c890ea8daa8d9f550cf9888 Mon Sep 17 00:00:00 2001 From: Iain Sandoe Date: Tue, 17 Nov 2020 16:28:30 +0000 Subject: [PATCH] C++ : Remove an overzealous checking assert [PR97871] It seems we accept __attribute__(()) without any diagnostic at present, so my added checking assert fires for something like: __attribute__ (()) int a; Fixed by removing the assert; in the case that the user enters something like: __attribute__ (()) extern "C" int foo; The diagnostic about attributes before linkage specs will fire and show the empty attributes. gcc/cp/ChangeLog: PR c++/97871 * parser.c (cp_parser_declaration): Remove checking assert. --- gcc/cp/parser.c | 1 - 1 file changed, 1 deletion(-) diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c index 42f705266bb..b7ef259b048 100644 --- a/gcc/cp/parser.c +++ b/gcc/cp/parser.c @@ -13536,7 +13536,6 @@ cp_parser_declaration (cp_parser* parser, tree prefix_attrs) { cp_lexer_save_tokens (parser->lexer); attributes = cp_parser_attributes_opt (parser); - gcc_checking_assert (attributes); cp_token *t1 = cp_lexer_peek_token (parser->lexer); cp_token *t2 = (t1->type == CPP_EOF ? t1 : cp_lexer_peek_nth_token (parser->lexer, 2));