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).
The master branch has been updated by Nathan Sidwell <email address hidden>:
https:/ /gcc.gnu. org/g:c49fcfdda a47f2828fe2af11 ae857cd67f53e23 f
commit r11-7322- gc49fcfddaa47f2 828fe2af11ae857 cd67f53e23f
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 IMPORT_ P propagation module) : Add assert.
gcc/ testsuite/ modules/ pr99153_ a.H: New. modules/ pr99153_ b.H: New.
gcc/cp/
* decl.c (duplicate_decls): Move DECL_MODULE_
to common-path.
* module.cc (set_defining_
* g++.dg/
* g++.dg/