aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/cp/ChangeLog5
-rw-r--r--gcc/cp/class.c5
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);