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

--- Comment #6 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:f981395c220c9afd73be138294946e085e64af78

commit r11-289-gf981395c220c9afd73be138294946e085e64af78
Author: Jason Merrill <ja...@redhat.com>
Date:   Mon May 11 15:39:44 2020 -0400

    c++: Use of 'this' in parameter declaration [PR90748]

    We were incorrectly accepting the use of 'this' at parse time and then
    crashing when we tried to instantiate it.  It is invalid because 'this' is
    not in scope until after the function-cv-quals.  So let's hoist setting
    current_class_ptr up from cp_parser_late_return_type_opt into
    cp_parser_direct_declarator where it can work for noexcept as well.

    gcc/cp/ChangeLog
    2020-05-11  Jason Merrill  <ja...@redhat.com>

            PR c++/90748
            * parser.c (inject_parm_decls): Set current_class_ptr here.
            (cp_parser_direct_declarator): And here.
            (cp_parser_late_return_type_opt): Not here.
            (cp_parser_noexcept_specification_opt): Nor here.
            (cp_parser_exception_specification_opt)
            (cp_parser_late_noexcept_specifier): Remove unneeded parameters.

Reply via email to