typeck.c (build_unary_op): Do not resort to address arithmetic when taking the address of a COMPONENT_REF.
* typeck.c (build_unary_op): Do not resort to address arithmetic when taking the address of a COMPONENT_REF. From-SVN: r99503
This commit is contained in:
parent
6323b34eeb
commit
9d9165ef48
2 changed files with 8 additions and 8 deletions
|
@ -1,3 +1,8 @@
|
|||
2005-05-09 Mark Mitchell <mark@codesourcery.com>
|
||||
|
||||
* typeck.c (build_unary_op): Do not resort to address arithmetic
|
||||
when taking the address of a COMPONENT_REF.
|
||||
|
||||
2005-05-08 Kazu Hirata <kazu@cs.umass.edu>
|
||||
|
||||
* class.c (vtbl_init_data_s): Change the type of fns to
|
||||
|
|
|
@ -4107,15 +4107,10 @@ build_unary_op (enum tree_code code, tree xarg, int noconvert)
|
|||
}
|
||||
else
|
||||
{
|
||||
tree object = TREE_OPERAND (arg, 0);
|
||||
tree field = TREE_OPERAND (arg, 1);
|
||||
tree rval = build_unary_op (ADDR_EXPR, TREE_OPERAND (arg, 0), 0);
|
||||
tree binfo = lookup_base (TREE_TYPE (TREE_TYPE (rval)),
|
||||
decl_type_context (field),
|
||||
ba_check, NULL);
|
||||
|
||||
rval = build_base_path (PLUS_EXPR, rval, binfo, 1);
|
||||
|
||||
TREE_OPERAND (arg, 0) = build_indirect_ref (rval, NULL);
|
||||
gcc_assert (same_type_ignoring_top_level_qualifiers_p
|
||||
(TREE_TYPE (object), decl_type_context (field)));
|
||||
addr = build_address (arg);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue