aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMark Mitchell <mark@codesourcery.com>2000-04-17 04:03:48 +0000
committerMark Mitchell <mmitchel@gcc.gnu.org>2000-04-17 04:03:48 +0000
commit256309e4e97077842e547cf630cdc1fd723085d6 (patch)
tree6f755b7b55f6fedd8a015c65e006ca37d8d6fca5 /gcc
parent08cb3d38deb58115562f9e6e3f0f3f127834347b (diff)
downloadgcc-256309e4e97077842e547cf630cdc1fd723085d6.zip
gcc-256309e4e97077842e547cf630cdc1fd723085d6.tar.gz
gcc-256309e4e97077842e547cf630cdc1fd723085d6.tar.bz2
class.c (build_vtable_entry): Don't build thunks for type-info functions.
* class.c (build_vtable_entry): Don't build thunks for type-info functions. From-SVN: r33201
Diffstat (limited to 'gcc')
-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);