summaryrefslogtreecommitdiff
path: root/patches/gcc/4.3.0/475-pr35705.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/gcc/4.3.0/475-pr35705.patch')
-rw-r--r--patches/gcc/4.3.0/475-pr35705.patch21
1 files changed, 21 insertions, 0 deletions
diff --git a/patches/gcc/4.3.0/475-pr35705.patch b/patches/gcc/4.3.0/475-pr35705.patch
new file mode 100644
index 0000000..5eb4312
--- /dev/null
+++ b/patches/gcc/4.3.0/475-pr35705.patch
@@ -0,0 +1,21 @@
+Original patch from gentoo: gentoo/src/patchsets/gcc/4.3.0/gentoo/63_all_gcc43-pr35705.patch
+http://gcc.gnu.org/PR35705
+
+2008-04-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR middle-end/35705
+ * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
+ the expression is a function address.
+
+diff -durN gcc-4.3.0.orig/gcc/fold-const.c gcc-4.3.0/gcc/fold-const.c
+--- gcc-4.3.0.orig/gcc/fold-const.c 2008-02-27 15:12:33.000000000 +0100
++++ gcc-4.3.0/gcc/fold-const.c 2008-06-10 14:45:09.000000000 +0200
+@@ -9357,7 +9357,7 @@
+ }
+ }
+
+- if (DECL_P (expr))
++ if (DECL_P (expr) && TREE_CODE (expr) != FUNCTION_DECL)
+ return DECL_ALIGN_UNIT (expr);
+ }
+ else if (code == POINTER_PLUS_EXPR)