diff options
| author | danglin <danglin@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-01-02 21:14:13 +0000 |
|---|---|---|
| committer | danglin <danglin@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-01-02 21:14:13 +0000 |
| commit | 7b642468bf765a44bae50772f8fed75355102ea6 (patch) | |
| tree | b2b2a8a4f4d65889bc90bc008057a35dff5f9ef8 | |
| parent | 08e5b6d182f5032e42f998814781e09184012e20 (diff) | |
| download | ppe42-gcc-7b642468bf765a44bae50772f8fed75355102ea6.tar.gz ppe42-gcc-7b642468bf765a44bae50772f8fed75355102ea6.zip | |
PR middle-end/55198
* expr.c (expand_expr_real_1): Don't use bitfield extraction for non
BLKmode objects when EXPAND_MEMORY is specified.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@194822 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | gcc/ChangeLog | 6 | ||||
| -rw-r--r-- | gcc/expr.c | 3 |
2 files changed, 8 insertions, 1 deletions
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 <dave.anglin@nrc-cnrc.gc.ca> + + 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 <tmsriram@google.com> * 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 |

