diff options
author | Mark Mitchell <mark@codesourcery.com> | 2005-07-18 15:44:36 +0000 |
---|---|---|
committer | Mark Mitchell <mmitchel@gcc.gnu.org> | 2005-07-18 15:44:36 +0000 |
commit | eba839f9719e66195f75207b377593c025c71b82 (patch) | |
tree | 7a30e58e91902a07435d0df3f33afcd8eeeddc4e /gcc/cp/decl2.c | |
parent | 28356f52a9c5d00dcf7b6673a2e83309c63cee0c (diff) | |
download | gcc-eba839f9719e66195f75207b377593c025c71b82.zip gcc-eba839f9719e66195f75207b377593c025c71b82.tar.gz gcc-eba839f9719e66195f75207b377593c025c71b82.tar.bz2 |
re PR c++/22263 (explicit instantiation fails to emit symbols defined later)
PR c++/22263
* cp-tree.h (instantiate_decl): Change prototype.
* decl2.c (mark_used): Adjust accordingly.
* pt.c (do_decl_instantiation): Likewise.
(instantiate_class_member): Likewise.
(instantiate_decl): Rename undefined_ok as expl_inst_class_mem_p.
Clear DECL_INTERFACE_KNOWN for an explicitly instantiated template
that has no definition available.
(instantiate_pending_templates): Adjust call to instantiate_decl.
PR c++/22263
* g++.dg/template/explicit7.C: New test.
From-SVN: r102133
Diffstat (limited to 'gcc/cp/decl2.c')
-rw-r--r-- | gcc/cp/decl2.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/cp/decl2.c b/gcc/cp/decl2.c index 22166e8..5afcd89 100644 --- a/gcc/cp/decl2.c +++ b/gcc/cp/decl2.c @@ -3278,7 +3278,8 @@ mark_used (tree decl) times. Maintaining a stack of active functions is expensive, and the inliner knows to instantiate any functions it might need. */ - instantiate_decl (decl, /*defer_ok=*/true, /*undefined_ok=*/0); + instantiate_decl (decl, /*defer_ok=*/true, + /*expl_inst_class_mem_p=*/false); } #include "gt-cp-decl2.h" |