http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48440
--- Comment #2 from H.J. Lu <hjl.tools at gmail dot com> 2011-04-04 22:15:54
UTC ---
This patch:
diff --git a/gcc/cgraphbuild.c b/gcc/cgraphbuild.c
index 3948cf6..c80d7ab 100644
--- a/gcc/cgraphbuild.c
+++ b/gcc/cgraphbuild.c
@@ -56,7 +56,10 @@ record_reference (tree *tp, int *walk_subtrees, void *data)
t = canonicalize_constructor_val (t);
if (!t)
t = *tp;
- else if (t != *tp)
+ else if (t != *tp
+ && !(Pmode != ptr_mode
+ && TREE_CODE (t) == ADDR_EXPR
+ && TREE_CODE (*tp) == CONVERT_EXPR))
*tp = t;
switch (TREE_CODE (t))
seems to work.