[Bug c++/70413] Class template names in anonymous namespaces are not globally unique
cvs-commit at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu Dec 21 18:53:51 GMT 2023
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70413
--- Comment #8 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Patrick Palka <ppalka@gcc.gnu.org>:
https://gcc.gnu.org/g:7226f825db049517b64442a40a6387513febb8f9
commit r14-6789-g7226f825db049517b64442a40a6387513febb8f9
Author: Patrick Palka <ppalka@redhat.com>
Date: Thu Dec 21 13:53:43 2023 -0500
c++: visibility wrt template and ptrmem targs [PR70413]
When constraining the visibility of an instantiation, we weren't
properly considering the visibility of PTRMEM_CST and TEMPLATE_DECL
template arguments.
This patch fixes this. It turns out we don't maintain the relevant
visibility flags for alias templates (e.g. TREE_PUBLIC is never set),
so continue to ignore alias template template arguments for now.
PR c++/70413
PR c++/107906
gcc/cp/ChangeLog:
* decl2.cc (min_vis_expr_r): Handle PTRMEM_CST and TEMPLATE_DECL
other than those for alias templates.
gcc/testsuite/ChangeLog:
* g++.dg/template/linkage2.C: New test.
* g++.dg/template/linkage3.C: New test.
* g++.dg/template/linkage4.C: New test.
* g++.dg/template/linkage4a.C: New test.
More information about the Gcc-bugs
mailing list