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

--- Comment #4 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-15 branch has been updated by Nathaniel Shead
<nsh...@gcc.gnu.org>:

https://gcc.gnu.org/g:a8f62a9b32668ea77da721cdc8b9403e507637af

commit r15-9724-ga8f62a9b32668ea77da721cdc8b9403e507637af
Author: Nathaniel Shead <nathanielosh...@gmail.com>
Date:   Thu May 22 22:16:22 2025 +1000

    c++/modules: Fix merge of TLS init functions [PR120363]

    The PR notes that we missed setting DECL_CONTEXT on the TLS init
    function; we missed this initially because this function is not created
    in header units, only named modules.

    I also noticed that 'DECL_CONTEXT (fn) = DECL_CONTEXT (var)' was
    incorrect: for class members, this ends up having the modules merging
    machinery treat the decl as a member function, which breaks when
    attempting to dedup against an existing completed class type.  Instead
    we can just use the global_namespace as the context, because the name of
    the function is already mangled appropriately so that we'll match the
    correct duplicates.

            PR c++/120363

    gcc/cp/ChangeLog:

            * decl2.cc (get_tls_init_fn): Set context as global_namespace.
            (get_tls_wrapper_fn): Likewise.

    gcc/testsuite/ChangeLog:

            * g++.dg/modules/pr113292_a.H: Move to...
            * g++.dg/modules/tls-1_a.H: ...here.
            * g++.dg/modules/pr113292_b.C: Move to...
            * g++.dg/modules/tls-1_b.C: ...here.
            * g++.dg/modules/pr113292_c.C: Move to...
            * g++.dg/modules/tls-1_c.C: ...here.
            * g++.dg/modules/tls-2_a.C: New test.
            * g++.dg/modules/tls-2_b.C: New test.
            * g++.dg/modules/tls-2_c.C: New test.
            * g++.dg/modules/tls-3.h: New test.
            * g++.dg/modules/tls-3_a.H: New test.
            * g++.dg/modules/tls-3_b.C: New test.

    Signed-off-by: Nathaniel Shead <nathanielosh...@gmail.com>
    Reviewed-by: Jason Merrill <ja...@redhat.com>
    (cherry picked from commit 66e9a4f3083356b064cc64651edad466a56f762b)

Reply via email to