https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61339
--- Comment #16 from Martin Sebor <msebor at gcc dot gnu.org> --- Author: msebor Date: Tue Dec 17 23:53:07 2019 New Revision: 279480 URL: https://gcc.gnu.org/viewcvs?rev=279480&root=gcc&view=rev Log: PR c++/61339 - add warning for mismatch between struct and class gcc/c-family/ChangeLog: PR c++/61339 * c.opt (-Wmismatched-tags, -Wredundant-tags): New options. gcc/cp/ChangeLog: PR c++/61339 * parser.c (cp_parser_maybe_warn_enum_key): New function. (class_decl_loc_t): New class. (cp_parser_elaborated_type_specifier): Call cp_parser_maybe_warn_enum_key. (cp_parser_class_head): Call cp_parser_check_class_key. (cp_parser_check_class_key): Add arguments. Call class_decl_loc_t::add. (c_parse_file): Call class_decl_loc_t::diag_mismatched_tags. gcc/testsuite/ChangeLog: PR c++/61339 * g++.dg/warn/Wmismatched-tags.C: New test. * g++.dg/warn/Wredundant-tags.C: New test. * g++.dg/pch/Wmismatched-tags.C: New test. * g++.dg/pch/Wmismatched-tags.Hs: New test header. gcc/ChangeLog: PR c++/61339 * doc/invoke.texi (-Wmismatched-tags, -Wredundant-tags): Document new C++ options. Added: trunk/gcc/testsuite/g++.dg/pch/Wmismatched-tags.C trunk/gcc/testsuite/g++.dg/pch/Wmismatched-tags.Hs trunk/gcc/testsuite/g++.dg/warn/Wmismatched-tags.C trunk/gcc/testsuite/g++.dg/warn/Wredundant-tags.C Modified: trunk/gcc/ChangeLog trunk/gcc/c-family/ChangeLog trunk/gcc/c-family/c.opt trunk/gcc/cp/ChangeLog trunk/gcc/cp/parser.c trunk/gcc/doc/invoke.texi trunk/gcc/testsuite/ChangeLog