aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/cp/ChangeLog6
-rw-r--r--gcc/cp/decl2.c8
2 files changed, 11 insertions, 3 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index bfb995c..f5d903c 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,9 @@
+2004-06-26 Jan Hubicka <jh@suse.cz>
+
+ PR C++/14865
+ * decl2.c (maybe_emit_vtables): Always import_export_vtable for the
+ reachability analysis.
+
2004-06-25 Mark Mitchell <mark@codesourcery.com>
* cp-mudflap.c (mflang_flush_calls): Fix thinkos resulting from
diff --git a/gcc/cp/decl2.c b/gcc/cp/decl2.c
index 5b23519..ae31076 100644
--- a/gcc/cp/decl2.c
+++ b/gcc/cp/decl2.c
@@ -1564,12 +1564,14 @@ maybe_emit_vtables (tree ctype)
return false;
import_export_class (ctype);
- import_export_vtable (primary_vtbl, ctype, 1);
/* See if any of the vtables are needed. */
for (vtbl = CLASSTYPE_VTABLES (ctype); vtbl; vtbl = TREE_CHAIN (vtbl))
- if (!DECL_EXTERNAL (vtbl) && DECL_NEEDED_P (vtbl))
- break;
+ {
+ import_export_vtable (vtbl, ctype, 1);
+ if (!DECL_EXTERNAL (vtbl) && DECL_NEEDED_P (vtbl))
+ break;
+ }
if (!vtbl)
{
/* If the references to this class' vtables are optimized away,