typeck.c (get_member_function_from_ptrfunc): Don't clobber delta.

* typeck.c (get_member_function_from_ptrfunc) [vbit_in_delta]:
Don't clobber delta.
(expand_ptrmemfunc_cst) [ptrmemfunc_vbit_in_delta]: Adjust pfn.

From-SVN: r43156
This commit is contained in:
Alexandre Oliva 2001-06-10 21:50:40 +00:00 committed by Alexandre Oliva
parent 9b8c19b4f5
commit eb2d06144a
2 changed files with 8 additions and 5 deletions

View File

@ -1,3 +1,9 @@
2001-06-10 Alexandre Oliva <aoliva@redhat.com>
* typeck.c (get_member_function_from_ptrfunc) [vbit_in_delta]:
Don't clobber delta.
(expand_ptrmemfunc_cst) [ptrmemfunc_vbit_in_delta]: Adjust pfn.
2001-06-10 Mark Mitchell <mark@codesourcery.com>
Gabriel Dos Reis <gdr@codesourcery.com>

View File

@ -2937,9 +2937,6 @@ get_member_function_from_ptrfunc (instance_ptrptr, function)
abort ();
}
delta = cp_convert (ptrdiff_type_node,
build_component_ref (function, delta_identifier,
NULL_TREE, 0));
/* DELTA2 is the amount by which to adjust the `this' pointer
to find the vtbl. */
delta2 = delta;
@ -6175,12 +6172,12 @@ expand_ptrmemfunc_cst (cst, delta, pfn)
ptrmemfunc_vbit_in_delta, in which case delta is shifted
left, and then incremented). */
*pfn = DECL_VINDEX (fn);
*pfn = fold (build (MULT_EXPR, integer_type_node, *pfn,
TYPE_SIZE_UNIT (vtable_entry_type)));
switch (TARGET_PTRMEMFUNC_VBIT_LOCATION)
{
case ptrmemfunc_vbit_in_pfn:
*pfn = fold (build (MULT_EXPR, integer_type_node, *pfn,
TYPE_SIZE_UNIT (vtable_entry_type)));
*pfn = fold (build (PLUS_EXPR, integer_type_node, *pfn,
integer_one_node));
break;