https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112631
--- Comment #1 from GCC Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Nathaniel Shead <nsh...@gcc.gnu.org>: https://gcc.gnu.org/g:ead3075406ece9daaad65a01ae539150aee43f5a commit r14-9501-gead3075406ece9daaad65a01ae539150aee43f5a Author: Nathaniel Shead <nathanielosh...@gmail.com> Date: Tue Mar 12 23:24:27 2024 +1100 c++: Check module attachment instead of just purview when necessary [PR112631] Block-scope declarations of functions or extern values are not allowed when attached to a named module. Similarly, class member functions are not inline if attached to a named module. However, in both these cases we currently only check if the declaration is within the module purview; it is possible for such a declaration to occur within the module purview but not be attached to a named module (e.g. in an 'extern "C++"' block). This patch makes the required adjustments. PR c++/112631 gcc/cp/ChangeLog: * cp-tree.h (named_module_attach_p): New function. * decl.cc (start_decl): Check for attachment not purview. (grokmethod): Likewise. gcc/testsuite/ChangeLog: * g++.dg/modules/block-decl-1_a.C: New test. * g++.dg/modules/block-decl-1_b.C: New test. * g++.dg/modules/block-decl-2.C: New test. Signed-off-by: Nathaniel Shead <nathanielosh...@gmail.com>