The following patch fixes it, but it's completely untested.
2006-11-07 Paolo Bonzini <bonzini@gnu.org>
* gimplify.c (fold_indirect_ref_rhs): Use
STRIP_USELESS_TYPE_CONVERSION rather than STRIP_NOPS.
Index: ../../gcc/gimplify.c
===================================================================
--- ../../gcc/gimplify.c (revision 118481)
+++ ../../gcc/gimplify.c (working copy)
@@ -3207,7 +3207,7 @@ fold_indirect_ref_rhs (tree t)
tree sub = t;
tree subtype;
- STRIP_NOPS (sub);
+ STRIP_USELESS_TYPE_CONVERSION (sub);
subtype = TREE_TYPE (sub);
if (!POINTER_TYPE_P (subtype))
return NULL_TREE;
If anybody could regtest it, this is a regression from 3.3, likely to
be present in all 4.x branches.