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

--- 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:71732eafedbd30355e752bf873d355fbcd0e076f

commit r15-6382-g71732eafedbd30355e752bf873d355fbcd0e076f
Author: Nathaniel Shead <nathanielosh...@gmail.com>
Date:   Sun Sep 8 01:37:28 2024 +1000

    c++/modules: Validate external linkage definitions in header units
[PR116401]

    [module.import] p6 says "A header unit shall not contain a definition of
    a non-inline function or variable whose name has external linkage."

    This patch implements this requirement, and cleans up some issues in the
    testsuite where this was already violated.  To handle deduction guides
    we mark them as inline, since although we give them a definition for
    implementation reasons, by the standard they have no definition, and so
    we should not error in this case.

            PR c++/116401

    gcc/cp/ChangeLog:

            * decl.cc (grokfndecl): Mark deduction guides as 'inline'.
            * module.cc (check_module_decl_linkage): Implement checks for
            non-inline external linkage definitions in headers.

    gcc/testsuite/ChangeLog:

            * g++.dg/modules/macro-4_c.H: Add missing 'inline'.
            * g++.dg/modules/pr106761.h: Likewise.
            * g++.dg/modules/pr98843_b.H: Likewise.
            * g++.dg/modules/pr99468.H: Likewise.
            * g++.dg/modules/pragma-1_a.H: Likewise.
            * g++.dg/modules/tpl-ary-1.h: Likewise.
            * g++.dg/modules/hdr-2.H: New test.

    Signed-off-by: Nathaniel Shead <nathanielosh...@gmail.com>
    Reviewed-by: Jason Merrill <ja...@redhat.com>

Reply via email to