aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/decl2.c
diff options
context:
space:
mode:
authorMark Mitchell <mark@codesourcery.com>2005-07-18 15:44:36 +0000
committerMark Mitchell <mmitchel@gcc.gnu.org>2005-07-18 15:44:36 +0000
commiteba839f9719e66195f75207b377593c025c71b82 (patch)
tree7a30e58e91902a07435d0df3f33afcd8eeeddc4e /gcc/cp/decl2.c
parent28356f52a9c5d00dcf7b6673a2e83309c63cee0c (diff)
downloadgcc-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.c3
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"