http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50199
--- Comment #5 from Richard Guenther <rguenth at gcc dot gnu.org> 2011-12-08 15:02:34 UTC --- Created attachment 26022 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=26022 gimple predicate patches GIMPLE predicate patches - that will now commit STRING_CSTs to a local temporary via the static enum gimplify_status gimplify_addr_expr (tree *expr_p, gimple_seq *pre_p, gimple_seq *post_p) { ... default: /* We use fb_either here because the C frontend sometimes takes the address of a call that returns a struct; see gcc.dg/c99-array-lval-1.c. The gimplifier will correctly make the implied temporary explicit. */ /* Make the operand addressable. */ ret = gimplify_expr (&TREE_OPERAND (expr, 0), pre_p, post_p, is_gimple_addressable, fb_either); which is of course bogus.