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)
