summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordanglin <danglin@138bc75d-0d04-0410-961f-82ee72b054a4>2013-01-02 21:14:13 +0000
committerdanglin <danglin@138bc75d-0d04-0410-961f-82ee72b054a4>2013-01-02 21:14:13 +0000
commit7b642468bf765a44bae50772f8fed75355102ea6 (patch)
treeb2b2a8a4f4d65889bc90bc008057a35dff5f9ef8
parent08e5b6d182f5032e42f998814781e09184012e20 (diff)
downloadppe42-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/ChangeLog6
-rw-r--r--gcc/expr.c3
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
OpenPOWER on IntegriCloud