[Bug c++/126783] [16/17 Regression] [modules] ICE when a GMF variable is later defined inline

cvs-commit at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Aug 13 22:07:37 GMT 2026


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

--- Comment #3 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:a03b3ab4b0a6a446fe9a1d7e6e82967a8dd3edcf

commit r17-3268-ga03b3ab4b0a6a446fe9a1d7e6e82967a8dd3edcf
Author: Patrick Palka <ppalka@redhat.com>
Date:   Thu Aug 13 18:07:25 2026 -0400

    c++/modules: ICE with GMF variable later defined inline [PR126783]

    Here transfer_defining_module (added in r16-5213) assumes that if
    a redeclaration has DECL_LANG_SPECIFIC allocated, then so must the
    original declaration, but this isn't true for q below.  Instead we
    should call retrofit_lang_decl to allocate DECL_LANG_SPECIFIC as
    needed; other parts of duplicate_decls do the same.

            PR c++/126783

    gcc/cp/ChangeLog:

            * module.cc (transfer_defining_module): Call retrofit_lang_decl
            instead of assuming the old declaration already has
            DECL_LANG_SPECIFIC allocated.

    gcc/testsuite/ChangeLog:

            * g++.dg/modules/gmf-6.C: New test.

    Reviewed-by: Jason Merrill <jason@redhat.com>


More information about the Gcc-bugs mailing list