diff options
author | Jason Merrill <jason@redhat.com> | 2001-06-06 17:52:52 -0400 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2001-06-06 17:52:52 -0400 |
commit | d0cd8b44016194824049ec6ee453d6864b73bc01 (patch) | |
tree | 54340a199d71a0aa015fcdf4fe886dffdcb11394 /gcc/cp/decl2.c | |
parent | acf97e0b7570b17a80d9b85d52a7cae9314a8f16 (diff) | |
download | gcc-d0cd8b44016194824049ec6ee453d6864b73bc01.zip gcc-d0cd8b44016194824049ec6ee453d6864b73bc01.tar.gz gcc-d0cd8b44016194824049ec6ee453d6864b73bc01.tar.bz2 |
cp-tree.h (THUNK_GENERATE_WITH_VTABLE_P): Lose.
* cp-tree.h (THUNK_GENERATE_WITH_VTABLE_P): Lose.
(struct lang_decl_flags): Lose generate_with_vtable_p.
(BV_GENERATE_THUNK_WITH_VTABLE_P): Lose.
* class.c (copy_virtuals): Adjust.
* decl2.c (mark_vtable_entries): Adjust.
* method.c (make_thunk, build_vtable_entry): Adjust.
* class.c (update_vtable_entry_for_fn): Only look as far as the
first defining class.
(build_vtbl_initializer): Put nothing in the slot for a function only
defined in a lost primary virtual base.
(add_vcall_offset_vtbl_entries_1): Use the same code for
the lost primary case and the normal case.
(dfs_unshared_virtual_bases): Don't lose a non-virtual primary base.
(get_vfield_offset, get_derived_offset): Lose.
(dfs_find_final_overrider): Use look_for_overrides_here.
(get_matching_virtual): New fn.
* semantics.c (emit_associated_thunks): Check BV_USE_VCALL_INDEX_P,
not BV_VCALL_INDEX.
* search.c (look_for_overrides_here): Split out from...
(look_for_overrides_r): Here.
* class.c (find_final_overrider): Return error_mark_node on error.
From-SVN: r42949
Diffstat (limited to 'gcc/cp/decl2.c')
-rw-r--r-- | gcc/cp/decl2.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/gcc/cp/decl2.c b/gcc/cp/decl2.c index c1aa328..56c4dbc 100644 --- a/gcc/cp/decl2.c +++ b/gcc/cp/decl2.c @@ -2265,7 +2265,7 @@ mark_vtable_entries (decl) we know all the thunks we'll need when we emit a virtual function, so we emit the thunks there instead. */ if (DECL_THUNK_P (fn)) - use_thunk (fn, THUNK_GENERATE_WITH_VTABLE_P (fn)); + use_thunk (fn, /*emit_p=*/0); mark_used (fn); } } @@ -2369,7 +2369,12 @@ key_method (type) method = TREE_CHAIN (method)) if (DECL_VINDEX (method) != NULL_TREE && ! DECL_DECLARED_INLINE_P (method) - && (! DECL_PURE_VIRTUAL_P (method) || DECL_DESTRUCTOR_P (method))) + && (! DECL_PURE_VIRTUAL_P (method) +#if 0 + /* This would be nice, but we didn't think of it in time. */ + || DECL_DESTRUCTOR_P (method) +#endif + )) return method; return NULL_TREE; |