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

--- Comment #9 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Sergei Trofimovich <sly...@gcc.gnu.org>:

https://gcc.gnu.org/g:27a1fb385b7fe706f05608e53f3e91d7d3442b8b

commit r12-2883-g27a1fb385b7fe706f05608e53f3e91d7d3442b8b
Author: Sergei Trofimovich <siarh...@google.com>
Date:   Fri Aug 6 16:14:16 2021 +0100

    c++: fix ptrmemfunc template instantiation [PR101219]

    r12-1804 ("cp: add support for per-location warning groups.") among other
    things removed warning suppression from a few places including ptrmemfuncs.

    This exposed a bug in warning detection code as a reference to missing
    BINFO (it's intentionally missing for ptrmemfunc types):

        crash_signal
            gcc/toplev.c:328
        perform_or_defer_access_check(tree_node*, tree_node*, tree_node*, int,
access_failure_info*)
            gcc/cp/semantics.c:490
        finish_non_static_data_member(tree_node*, tree_node*, tree_node*)
            gcc/cp/semantics.c:2208
        ...

    The change special cases ptrmemfuncs in templace substitution by using
    build_ptrmemfunc_access_expr() instead of finish_non_static_data_member().

    gcc/cp/ChangeLog:

            PR c++/101219
            * pt.c (tsubst_copy_and_build): Use build_ptrmemfunc_access_expr
            to construct ptrmemfunc expression instantiation.

    gcc/testsuite/ChangeLog:

            PR c++/101219
            * g++.dg/warn/pr101219.C: New test.
  • [Bug c++/101219] [12 Regression... cvs-commit at gcc dot gnu.org via Gcc-bugs

Reply via email to