diff options
-rw-r--r-- | gcc/cp/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cp/class.c | 5 |
2 files changed, 9 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 4634c2e..08fbb76 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2000-04-16 Mark Mitchell <mark@codesourcery.com> + + * class.c (build_vtable_entry): Don't build thunks for type-info + functions. + 2000-04-16 Jason Merrill <jason@casey.cygnus.com> * decl.c (decls_match): Allow a redeclaration of a builtin to diff --git a/gcc/cp/class.c b/gcc/cp/class.c index bf9c804..a850a27 100644 --- a/gcc/cp/class.c +++ b/gcc/cp/class.c @@ -6924,11 +6924,14 @@ build_vtable_entry (delta, vcall_index, entry) { HOST_WIDE_INT idelta; HOST_WIDE_INT ivindex; + tree fn; idelta = tree_low_cst (delta, 0); ivindex = tree_low_cst (vcall_index, 0); + fn = TREE_OPERAND (entry, 0); if ((idelta || ivindex) - && TREE_OPERAND (entry, 0) != abort_fndecl) + && fn != abort_fndecl + && !DECL_TINFO_FN_P (fn)) { entry = make_thunk (entry, idelta, ivindex); entry = build1 (ADDR_EXPR, vtable_entry_type, entry); |