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>

Reply via email to