aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJason Merrill <jason@gcc.gnu.org>2002-05-14 10:14:43 -0400
committerJason Merrill <jason@gcc.gnu.org>2002-05-14 10:14:43 -0400
commitaffb23402ddfb8d402df9f941421936e7fcf7b01 (patch)
tree87a9cba59ef842297cf196a05ab7546760e62efb /gcc
parent4d604303a6430734aed8d6f4d377475668693bd3 (diff)
downloadgcc-affb23402ddfb8d402df9f941421936e7fcf7b01.zip
gcc-affb23402ddfb8d402df9f941421936e7fcf7b01.tar.gz
gcc-affb23402ddfb8d402df9f941421936e7fcf7b01.tar.bz2
revert last checkin
From-SVN: r53457
Diffstat (limited to 'gcc')
-rw-r--r--gcc/cp/ChangeLog4
-rw-r--r--gcc/cp/decl2.c7
-rw-r--r--gcc/cp/rtti.c6
3 files changed, 5 insertions, 12 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index da89625..d5facc5 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -5,10 +5,6 @@
(build_base_path): Vtable contents are constant.
* typeck.c (get_member_function_from_ptrfunc): Likewise.
- * rtti.c (emit_tinfo_decl): Call import_export_decl.
- * decl2.c (import_export_decl): Set DECL_NOT_REALLY_EXTERN on
- tinfo decls by default. Don't mess with the builtins.
-
2002-05-12 Jason Merrill <jason@redhat.com>
* cp-lang.c (ok_to_generate_alias_set_for_type): Backend-created
diff --git a/gcc/cp/decl2.c b/gcc/cp/decl2.c
index 2fd67ae..2054a37 100644
--- a/gcc/cp/decl2.c
+++ b/gcc/cp/decl2.c
@@ -2514,7 +2514,6 @@ import_export_decl (decl)
if (IS_AGGR_TYPE (ctype))
import_export_class (ctype);
- DECL_NOT_REALLY_EXTERN (decl) = 1;
if (IS_AGGR_TYPE (ctype) && CLASSTYPE_INTERFACE_KNOWN (ctype)
&& TYPE_POLYMORPHIC_P (ctype)
/* If -fno-rtti, we're not necessarily emitting this stuff with
@@ -2538,9 +2537,9 @@ import_export_decl (decl)
if (flag_weak)
comdat_linkage (decl);
}
- /* We used to exclude the builtin types here, but that broke
- emit_support_tinfos. Let rtti.c choose whether or not to emit
- them. */
+ else if (TYPE_BUILT_IN (ctype)
+ && same_type_p (ctype, TYPE_MAIN_VARIANT (ctype)))
+ DECL_NOT_REALLY_EXTERN (decl) = 0;
else
comdat_linkage (decl);
}
diff --git a/gcc/cp/rtti.c b/gcc/cp/rtti.c
index 63ffcb7..16df801 100644
--- a/gcc/cp/rtti.c
+++ b/gcc/cp/rtti.c
@@ -1462,11 +1462,9 @@ emit_tinfo_decl (decl_ptr, data)
my_friendly_assert (TREE_TYPE (tinfo_decl) == tinfo_decl_type, 20000121);
tinfo_type = TREE_TYPE (DECL_NAME (tinfo_decl));
my_friendly_assert (tinfo_type != NULL_TREE, 20000120);
-
- import_export_decl (tinfo_decl);
- if (DECL_REALLY_EXTERN (tinfo_decl) || !DECL_NEEDED_P (tinfo_decl))
+
+ if (!DECL_NEEDED_P (tinfo_decl))
return 0;
-
/* Say we've dealt with it. */
TREE_TYPE (DECL_NAME (tinfo_decl)) = NULL_TREE;