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.