------- Comment #2 from rguenth at gcc dot gnu dot org 2006-12-11 16:25 -------
This fixes it:
Index: fold-const.c
===================================================================
*** fold-const.c (revision 119733)
--- fold-const.c (working copy)
*************** fold_unary_to_constant (enum tree_code c
*** 12726,12732 ****
tree
fold_read_from_constant_string (tree exp)
{
! if (TREE_CODE (exp) == INDIRECT_REF || TREE_CODE (exp) == ARRAY_REF)
{
tree exp1 = TREE_OPERAND (exp, 0);
tree index;
--- 12817,12825 ----
tree
fold_read_from_constant_string (tree exp)
{
! if ((TREE_CODE (exp) == INDIRECT_REF
! || TREE_CODE (exp) == ARRAY_REF)
! && !AGGREGATE_TYPE_P (TREE_TYPE (exp)))
{
tree exp1 = TREE_OPERAND (exp, 0);
tree index;
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30147