re PR middle-end/55198 (libquadmath/math/fmaq.c:233:7: internal compiler error)
authorJohn David Anglin <dave.anglin@nrc-cnrc.gc.ca>
Wed, 2 Jan 2013 21:14:13 +0000 (21:14 +0000)
committerJohn David Anglin <danglin@gcc.gnu.org>
Wed, 2 Jan 2013 21:14:13 +0000 (21:14 +0000)
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

gcc/ChangeLog
gcc/expr.c

index 95f8d8bc4f18c8bbfb62011dd6319f62329cd546..2ab26d339c1a9a390c5e948eaae88bddecaea142 100644 (file)
@@ -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
index 9d9e5b9abf59f265c3335aa28b72fa0a4895e0d8..e7b77707de8f770acf4d50d60fa41034354d77f0 100644 (file)
@@ -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