https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97871
--- Comment #3 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Iain D Sandoe <ia...@gcc.gnu.org>: https://gcc.gnu.org/g:c2cf58f0e3a32b803c890ea8daa8d9f550cf9888 commit r11-5104-gc2cf58f0e3a32b803c890ea8daa8d9f550cf9888 Author: Iain Sandoe <i...@sandoe.co.uk> Date: Tue Nov 17 16:28:30 2020 +0000 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.