aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '4.1.1/gentoo/46_all_gcc4-pr28116.patch')
-rw-r--r--4.1.1/gentoo/46_all_gcc4-pr28116.patch25
1 files changed, 25 insertions, 0 deletions
diff --git a/4.1.1/gentoo/46_all_gcc4-pr28116.patch b/4.1.1/gentoo/46_all_gcc4-pr28116.patch
new file mode 100644
index 0000000..de604d9
--- /dev/null
+++ b/4.1.1/gentoo/46_all_gcc4-pr28116.patch
@@ -0,0 +1,25 @@
+http://bugs.gentoo.org/136309
+http://bugs.gentoo.org/137376
+http://gcc.gnu.org/PR28116
+
+2007-01-05 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/28116
+ * tree-inline.c (copy_body_r): Mark argument of ADDR_EXPR
+ addressable.
+
+--- branches/gcc-4_1-branch/gcc/tree-inline.c 2007/01/05 13:49:33 120479
++++ branches/gcc-4_1-branch/gcc/tree-inline.c 2007/01/05 13:53:45 120480
+@@ -714,7 +714,11 @@
+ if (TREE_CODE (TREE_OPERAND (*tp, 0)) == INDIRECT_REF)
+ *tp = TREE_OPERAND (TREE_OPERAND (*tp, 0), 0);
+ else
+- recompute_tree_invarant_for_addr_expr (*tp);
++ {
++ recompute_tree_invarant_for_addr_expr (*tp);
++ if (DECL_P (TREE_OPERAND (*tp, 0)))
++ TREE_ADDRESSABLE (TREE_OPERAND (*tp, 0)) = 1;
++ }
+ *walk_subtrees = 0;
+ }
+ }