diff options
author | Mark Mitchell <mark@codesourcery.com> | 2002-10-25 19:39:47 +0000 |
---|---|---|
committer | Mark Mitchell <mmitchel@gcc.gnu.org> | 2002-10-25 19:39:47 +0000 |
commit | bb5e8a7ffc01267f79f7d3a70b98a29fc6eb604c (patch) | |
tree | bc8ca7b32029d71b1854594ff6c94c1ba702f188 /gcc/cp/decl.c | |
parent | f3763a442e854320fd233fd63b7871f301f723be (diff) | |
download | gcc-bb5e8a7ffc01267f79f7d3a70b98a29fc6eb604c.zip gcc-bb5e8a7ffc01267f79f7d3a70b98a29fc6eb604c.tar.gz gcc-bb5e8a7ffc01267f79f7d3a70b98a29fc6eb604c.tar.bz2 |
class.c (build_vtbl_initializer): Don't use build_vtable_entry.
* class.c (build_vtbl_initializer): Don't use build_vtable_entry.
(build_vtable_entry): Remove.
* cp-tree.h (BINFO_VIRTUALS): Expand documentation.
(lang_decl): Add thunks.
(DECL_THUNKS): New macro.
* decl.c (duplicate_decls): Copy it.
* method.c (make_thunk): Simplify, and add thunks to DECL_THUNKS.
* semantics.c (emit_associated_thunks): Simplify.
* g++.dg/abi/vthunk2.C: New test.
From-SVN: r58536
Diffstat (limited to 'gcc/cp/decl.c')
-rw-r--r-- | gcc/cp/decl.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c index 97ab946..7459c87 100644 --- a/gcc/cp/decl.c +++ b/gcc/cp/decl.c @@ -3594,9 +3594,12 @@ duplicate_decls (newdecl, olddecl) /* Only functions have DECL_BEFRIENDING_CLASSES. */ if (TREE_CODE (newdecl) == FUNCTION_DECL || DECL_FUNCTION_TEMPLATE_P (newdecl)) - DECL_BEFRIENDING_CLASSES (newdecl) - = chainon (DECL_BEFRIENDING_CLASSES (newdecl), - DECL_BEFRIENDING_CLASSES (olddecl)); + { + DECL_BEFRIENDING_CLASSES (newdecl) + = chainon (DECL_BEFRIENDING_CLASSES (newdecl), + DECL_BEFRIENDING_CLASSES (olddecl)); + DECL_THUNKS (newdecl) = DECL_THUNKS (olddecl); + } } if (TREE_CODE (newdecl) == FUNCTION_DECL) |