+2014-02-11 Jeff Law <law@redhat.com>
+
+ PR middle-end/54041
+ * expr.c (expand_expr_addr_expr_1): Handle expand_expr returning an
+ object with an undesirable mode.
+
2014-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
PR libgomp/60107
modifier == EXPAND_INITIALIZER
? EXPAND_INITIALIZER : EXPAND_NORMAL);
+ /* expand_expr is allowed to return an object in a mode other
+ than TMODE. If it did, we need to convert. */
+ if (GET_MODE (tmp) != VOIDmode && tmode != GET_MODE (tmp))
+ tmp = convert_modes (tmode, GET_MODE (tmp),
+ tmp, TYPE_UNSIGNED (TREE_TYPE (offset)));
result = convert_memory_address_addr_space (tmode, result, as);
tmp = convert_memory_address_addr_space (tmode, tmp, as);