diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 95f8d8bc4f1..2ab26d339c1 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2013-01-02 John David Anglin + + PR middle-end/55198 + * expr.c (expand_expr_real_1): Don't use bitfield extraction for non + BLKmode objects when EXPAND_MEMORY is specified. + 2013-01-02 Sriraman Tallam * config/i386/i386.c (ix86_get_function_versions_dispatcher): Fix bug diff --git a/gcc/expr.c b/gcc/expr.c index 9d9e5b9abf5..e7b77707de8 100644 --- a/gcc/expr.c +++ b/gcc/expr.c @@ -9960,7 +9960,8 @@ expand_expr_real_1 (tree exp, rtx target, enum machine_mode tmode, && GET_MODE_CLASS (mode) != MODE_COMPLEX_INT && GET_MODE_CLASS (mode) != MODE_COMPLEX_FLOAT && modifier != EXPAND_CONST_ADDRESS - && modifier != EXPAND_INITIALIZER) + && modifier != EXPAND_INITIALIZER + && modifier != EXPAND_MEMORY) /* If the field is volatile, we always want an aligned access. Do this in following two situations: 1. the access is not already naturally