diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cp/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/cp/decl2.c | 8 |
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, |