diff options
Diffstat (limited to 'gcc/cp/rtti.c')
-rw-r--r-- | gcc/cp/rtti.c | 14 |
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; |