aboutsummaryrefslogtreecommitdiff
path: root/recipes-devtools/gcc/gcc-linaro-4.6/revert-r106893.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-devtools/gcc/gcc-linaro-4.6/revert-r106893.patch')
-rw-r--r--recipes-devtools/gcc/gcc-linaro-4.6/revert-r106893.patch19
1 files changed, 19 insertions, 0 deletions
diff --git a/recipes-devtools/gcc/gcc-linaro-4.6/revert-r106893.patch b/recipes-devtools/gcc/gcc-linaro-4.6/revert-r106893.patch
new file mode 100644
index 00000000..c88b3614
--- /dev/null
+++ b/recipes-devtools/gcc/gcc-linaro-4.6/revert-r106893.patch
@@ -0,0 +1,19 @@
+This patch reverts a backport from mainline that fixes an ICE when using LTO
+but also introduces a regression when using NEON intrinsics. It's a temporary
+workaround till a better fix is available. For details visit:
+https://bugs.launchpad.net/gcc-linaro/+bug/1013209
+
+Index: gcc-linaro-4.6-2012.06/gcc/config/arm/arm.c
+===================================================================
+@@ -20451,8 +20451,10 @@ neon_dereference_pointer (tree exp, enum
+ upper_bound = build_int_cst (size_type_node, nelems - 1);
+ 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 (build_pointer_type (array_type), 0));
++ build_int_cst (TREE_TYPE (exp), 0));
+ }
+
+ /* Expand a Neon builtin. */