aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn David Anglin <dave.anglin@nrc-cnrc.gc.ca>2013-01-02 21:14:13 +0000
committerJohn David Anglin <danglin@gcc.gnu.org>2013-01-02 21:14:13 +0000
commit9e65d03ec68d0fc995070ecd8c856a9243125990 (patch)
treeb2b2a8a4f4d65889bc90bc008057a35dff5f9ef8
parent3a322efd85d2697724a6e759c9a53f14a3aac6b6 (diff)
downloadgcc-9e65d03ec68d0fc995070ecd8c856a9243125990.zip
gcc-9e65d03ec68d0fc995070ecd8c856a9243125990.tar.gz
gcc-9e65d03ec68d0fc995070ecd8c856a9243125990.tar.bz2
re PR middle-end/55198 (libquadmath/math/fmaq.c:233:7: internal compiler error)
PR middle-end/55198 * expr.c (expand_expr_real_1): Don't use bitfield extraction for non BLKmode objects when EXPAND_MEMORY is specified. From-SVN: r194822
-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 95f8d8b..2ab26d3 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 9d9e5b9..e7b7770 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