------- 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