https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120628
Bug ID: 120628 Summary: GCC emits incorrect warnings/errors for identifiers "final" and "override" in C++98 mode Product: gcc Version: 16.0 Status: UNCONFIRMED Keywords: rejects-valid Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: de34 at live dot cn Target Milestone: --- The following code snippet is well-formed in C++98 and later. ``` struct C {}; struct C final = {}; struct C override = {}; ``` But GCC seems confused by the change in C++11 that made `final` and `override` contextual keywords, and emits incorrect pedantic errors in the ancient mode (https://godbolt.org/z/T5d1467rh). The status quo seems to start since GCC 4.7.