Commit eb2d0614 by Alexandre Oliva Committed by Alexandre Oliva

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
parent 9b8c19b4
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> 2001-06-10 Mark Mitchell <mark@codesourcery.com>
Gabriel Dos Reis <gdr@codesourcery.com> Gabriel Dos Reis <gdr@codesourcery.com>
......
...@@ -2937,9 +2937,6 @@ get_member_function_from_ptrfunc (instance_ptrptr, function) ...@@ -2937,9 +2937,6 @@ get_member_function_from_ptrfunc (instance_ptrptr, function)
abort (); 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 /* DELTA2 is the amount by which to adjust the `this' pointer
to find the vtbl. */ to find the vtbl. */
delta2 = delta; delta2 = delta;
...@@ -6175,12 +6172,12 @@ expand_ptrmemfunc_cst (cst, delta, pfn) ...@@ -6175,12 +6172,12 @@ expand_ptrmemfunc_cst (cst, delta, pfn)
ptrmemfunc_vbit_in_delta, in which case delta is shifted ptrmemfunc_vbit_in_delta, in which case delta is shifted
left, and then incremented). */ left, and then incremented). */
*pfn = DECL_VINDEX (fn); *pfn = DECL_VINDEX (fn);
*pfn = fold (build (MULT_EXPR, integer_type_node, *pfn,
TYPE_SIZE_UNIT (vtable_entry_type)));
switch (TARGET_PTRMEMFUNC_VBIT_LOCATION) switch (TARGET_PTRMEMFUNC_VBIT_LOCATION)
{ {
case ptrmemfunc_vbit_in_pfn: 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, *pfn = fold (build (PLUS_EXPR, integer_type_node, *pfn,
integer_one_node)); integer_one_node));
break; break;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment