------- 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