Hi,

We hit an ICE using lto with neon intrinsics that could be traced back
to an invalid call to convert during expand with LTO . Fixed by
backporting Richi's fix from mainline - checking he had no objections
to this on IRC , tested cross on arm-linux-gnueabi with qemu for no
regressions.

Applied to the FSF 4.7 branch.


regards,
Ramana


2012-05-24  Ramana Radhakrishnan  <ramana.radhakrish...@linaro.org>

        Backport from mainline
        2012-03-12  Richard Guenther  <rguent...@suse.de>
        * config/arm/arm.c (neon_dereference_pointer): Do not call
        covert during RTL expansion.


Index: gcc/config/arm/arm.c
===================================================================
--- gcc/config/arm/arm.c        (revision 187800)
+++ gcc/config/arm/arm.c        (working copy)
@@ -20604,9 +20604,8 @@
   array_type = build_array_type (elem_type, build_index_type (upper_bound));

   /* Dereference EXP using that type.  */
-  exp = convert (build_pointer_type (array_type), exp);
   return fold_build2 (MEM_REF, array_type, exp,
-                     build_int_cst (TREE_TYPE (exp), 0));
+                     build_int_cst (build_pointer_type (array_type), 0));
 }

 /* Expand a Neon builtin.  */

Reply via email to