http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48493

Richard Guenther <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
      Known to work|                            |4.8.0
            Summary|[4.6/4.7/4.8 Regression]    |[4.6/4.7 Regression] ice in
                   |ice in                      |expand_expr_addr_expr_1
                   |expand_expr_addr_expr_1     |with complex types and
                   |with complex types and      |mem_ref
                   |mem_ref                     |

--- Comment #11 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-05-30 
12:42:28 UTC ---
Can somebody test

Index: gcc/expr.c
===================================================================
--- gcc/expr.c  (revision 188009)
+++ gcc/expr.c  (working copy)
@@ -4593,6 +4593,7 @@ expand_assignment (tree to, tree from, b
   if ((TREE_CODE (to) == MEM_REF
        || TREE_CODE (to) == TARGET_MEM_REF)
       && mode != BLKmode
+      && !mem_ref_refers_to_non_mem_p (to)
       && ((align = get_object_or_type_alignment (to))
          < GET_MODE_ALIGNMENT (mode))
       && ((icode = optab_handler (movmisalign_optab, mode))

on arm?  That's pre-approved if it passes bootstrap & regtest (it works on
the testcase with a cross and is an obvious partial backport from trunk
r185336).

Thus, the testcase works for me on trunk.

Reply via email to