Comment 5 for bug 1915640

Revision history for this message
In , Cvs-commit (cvs-commit) wrote :

The master branch has been updated by Nathan Sidwell <email address hidden>:

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

commit r11-7322-gc49fcfddaa47f2828fe2af11ae857cd67f53e23f
Author: Nathan Sidwell <email address hidden>
Date: Mon Feb 22 06:43:32 2021 -0800

    c++: cross-header-unit template definitions [PR 99153]

    A member function can be defined in a different header-file than the
    one defining the class. In such situations we must unmark the decl as
    imported. When the entity is a template we failed to unmark the
    template_decl.

    Perhaps the duplication of these flags on the template_decl from the
    underlying decl is an error. I set on the fence about it for a long
    time during development, but I don't think now is the time to change
    that (barring catastrophic bugs).

            PR c++/99153
            gcc/cp/
            * decl.c (duplicate_decls): Move DECL_MODULE_IMPORT_P propagation
            to common-path.
            * module.cc (set_defining_module): Add assert.
            gcc/testsuite/
            * g++.dg/modules/pr99153_a.H: New.
            * g++.dg/modules/pr99153_b.H: New.