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

Reply via email to