------- Comment #7 from rguenth at gcc dot gnu dot org 2010-07-18 21:22 -------
More like
if (TREE_CODE (*expr) == MEM_REF
&& TREE_OPERAND (*expr, 0) != ADDR_EXPR)
*expr = fold_build2 (MEM_REF, exp_type,
TREE_OPERAND (*expr, 0),
int_const_binop (PLUS_EXPR,
build_int_cst (/* FIMXE
*/build_pointer_type (exp_type),
offset), TREE_OPERAND (*expr, 1), 0));
else
*expr = fold_build2 (MEM_REF, exp_type, build_fold_addr_expr (*expr),
build_int_cst (/* FIMXE */build_pointer_type
(exp_type),
offset));
with some cleanup, of course. I'll take another look tomorrow.
--
rguenth at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
AssignedTo|jamborm at gcc dot gnu dot |rguenth at gcc dot gnu dot
|org |org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44972