summaryrefslogtreecommitdiff
path: root/gcc/cp/dump.c
diff options
context:
space:
mode:
authornathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4>2002-12-30 13:39:48 +0000
committernathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4>2002-12-30 13:39:48 +0000
commit71b1859a782cdd1a3156e2a5f99be3bb9b5218d4 (patch)
treeb2f4b26dcfa4c39b16e56aaa74b284dd0dfd7bbe /gcc/cp/dump.c
parent4b09de30489eadcb49bc9ebfe8d53c22c0e138f5 (diff)
downloadgcc-71b1859a782cdd1a3156e2a5f99be3bb9b5218d4.tar.gz
cp:
* cp-tree.h (THUNK_TARGET): New macro. (THUNK_VIRTUAL_OFFSET): For result thunks it is always a binfo. (finish_thunk): Remove offset parms. * class.c (find_final_overrider): Look through thunks. (get_vcall_index): Use THUNK_TARGET. (update_vtable_entry_for_fn): Look through thunks. Set covariant fixed offset here. Adjust finish_thunk call. (build_vtbl_initializer): Adjust finish_thunk calls. * mangle.c (mangle_call_offset): Remove superfluous if. (mangle_thunk): Adjust. * method.c (make_thunk): Adjust. (finish_thunk): Adjust. (thunk_adjust): Remove assert. (use_thunk): Use THUNK_TARGET * dump1.c (cp_dump_tree): Adjust thunk dumping. testsuite: * g++.dg/inherit/covariant5.C: New test. * g++.dg/inherit/covariant6.C: New test. * g++.dg/inherit/covariant7.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@60628 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cp/dump.c')
-rw-r--r--gcc/cp/dump.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/gcc/cp/dump.c b/gcc/cp/dump.c
index da207d32917..bb842bdcae2 100644
--- a/gcc/cp/dump.c
+++ b/gcc/cp/dump.c
@@ -336,13 +336,20 @@ cp_dump_tree (dump_info, t)
}
else
{
+ tree virt = THUNK_VIRTUAL_OFFSET (t);
+
dump_string (di, "thunk");
if (DECL_THIS_THUNK_P (t))
dump_string (di, "this adjusting");
else
- dump_string (di, "result adjusting");
+ {
+ dump_string (di, "result adjusting");
+ if (virt)
+ virt = BINFO_VPTR_FIELD (virt);
+ }
dump_int (di, "fixd", THUNK_FIXED_OFFSET (t));
- dump_child ("virt", THUNK_VIRTUAL_OFFSET (t));
+ if (virt)
+ dump_int (di, "virt", tree_low_cst (virt, 0));
dump_child ("fn", DECL_INITIAL (t));
}
break;