https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70417

--- Comment #4 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jason Merrill <ja...@gcc.gnu.org>:

https://gcc.gnu.org/g:b8ffa71e4271ae562c2d315b9b24c4979bbf8227

commit r12-6563-gb8ffa71e4271ae562c2d315b9b24c4979bbf8227
Author: Anthony Sharp <anthonyshar...@gmail.com>
Date:   Sat Dec 4 17:23:22 2021 +0000

    c++: warning for dependent template members [PR70417]

    Add a helpful warning message for when the user forgets to
    include the "template" keyword after ., -> or :: when
    accessing a member in a dependent context, where the member is a
    template.

            PR c++/70417

    gcc/c-family/ChangeLog:

            * c.opt: Added -Wmissing-template-keyword.

    gcc/cp/ChangeLog:

            * parser.c (cp_parser_id_expression): Handle
            -Wmissing-template-keyword.
            (struct saved_token_sentinel): Add modes to control what happens
            on destruction.
            (cp_parser_statement): Adjust.
            (cp_parser_skip_entire_template_parameter_list): New function that
            skips an entire template parameter list.
            (cp_parser_require_end_of_template_parameter_list): Rename old
            cp_parser_skip_to_end_of_template_parameter_list.
            (cp_parser_skip_to_end_of_template_parameter_list): Refactor to be
            called from one of the above two functions.
            (cp_parser_lambda_declarator_opt)
            (cp_parser_explicit_template_declaration)
            (cp_parser_enclosed_template_argument_list): Adjust.

    gcc/ChangeLog:

            * doc/invoke.texi: Documentation for Wmissing-template-keyword.

    gcc/testsuite/ChangeLog:

            * g++.dg/cpp0x/variadic-mem_fn2.C: Catch warning about missing
            template keyword.
            * g++.dg/template/dependent-name17.C: New test.
            * g++.dg/template/dependent-name18.C: New test.

    Co-authored-by: Jason Merrill <ja...@redhat.com>

Reply via email to