aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/rtti.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/cp/rtti.c')
-rw-r--r--gcc/cp/rtti.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/gcc/cp/rtti.c b/gcc/cp/rtti.c
index 5b451bf..14b16c8 100644
--- a/gcc/cp/rtti.c
+++ b/gcc/cp/rtti.c
@@ -374,9 +374,6 @@ get_tinfo_fn (type)
make_function_rtl (d);
assemble_external (d);
mark_inline_for_output (d);
- if (at_eof)
- import_export_decl (d);
-
pop_obstacks ();
return d;
@@ -1064,9 +1061,16 @@ synthesize_tinfo_fn (fndecl)
tree fndecl;
{
tree type = TREE_TYPE (DECL_NAME (fndecl));
- tree tmp, addr;
+ tree tmp, addr, tdecl;
+
+ if (at_eof)
+ {
+ import_export_decl (fndecl);
+ if (DECL_REALLY_EXTERN (fndecl))
+ return;
+ }
- tree tdecl = get_tinfo_var (type);
+ tdecl = get_tinfo_var (type);
DECL_EXTERNAL (tdecl) = 0;
TREE_STATIC (tdecl) = 1;
DECL_COMMON (tdecl) = 1;