aboutsummaryrefslogtreecommitdiff
path: root/gcc/expr.c
diff options
context:
space:
mode:
authorMichael Matz <matz@suse.de>2012-05-29 14:41:53 +0000
committerMichael Matz <matz@gcc.gnu.org>2012-05-29 14:41:53 +0000
commitca5f4331230013bba0a5e4d1c4340158b2991b65 (patch)
tree5534a3c29342dd48c087ead51be0face86e90762 /gcc/expr.c
parent508ef0c675b409e2c92c8078a2dc5043da88db1b (diff)
downloadgcc-ca5f4331230013bba0a5e4d1c4340158b2991b65.zip
gcc-ca5f4331230013bba0a5e4d1c4340158b2991b65.tar.gz
gcc-ca5f4331230013bba0a5e4d1c4340158b2991b65.tar.bz2
expr.c (expand_expr_real_1 <normal_inner_ref>): Don't allocate a kept temp.
* expr.c (expand_expr_real_1 <normal_inner_ref>): Don't allocate a kept temp. (expand_expr_real_1 <COMPOUND_LITERAL_EXPR>): Make unreachable. * gimple-fold.c (canonicalize_constructor_val): Canonicalize COMPOUND_LITERAL_EXPR. * function.c (expand_function_start): Don't call expand_decl, instead assert that we have RTL assigned. * tree-ssa-live.c (remove_unused_locals): Clear nonlocal_goto_save_area if its backing variable is removed. * stmt.c (expand_asm_operands): Remove handling of non-lvalues as mem inputs. (expand_decl): Assert that this does nothing. * calls.c (expand_call): Don't call mark_temp_addr_taken. * c-tree.h (c_expand_decl): Remove prototype. c-family/ * c-common.h (c_expand_decl): Remove prototype. ada/ * gcc-interface/utils.c (create_var_decl_1): Don't call expand_decl. From-SVN: r187962
Diffstat (limited to 'gcc/expr.c')
-rw-r--r--gcc/expr.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/expr.c b/gcc/expr.c
index d568deb..fd995d1 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -9922,7 +9922,7 @@ expand_expr_real_1 (tree exp, rtx target, enum machine_mode tmode,
tree nt = build_qualified_type (TREE_TYPE (tem),
(TYPE_QUALS (TREE_TYPE (tem))
| TYPE_QUAL_CONST));
- memloc = assign_temp (nt, 1, 1, 1);
+ memloc = assign_temp (nt, 0, 1, 1);
emit_move_insn (memloc, op0);
op0 = memloc;
mem_attrs_from_type = true;
@@ -10425,6 +10425,7 @@ expand_expr_real_1 (tree exp, rtx target, enum machine_mode tmode,
case POSTDECREMENT_EXPR:
case LOOP_EXPR:
case EXIT_EXPR:
+ case COMPOUND_LITERAL_EXPR:
/* Lowered by gimplify.c. */
gcc_unreachable ();
@@ -10439,7 +10440,7 @@ expand_expr_real_1 (tree exp, rtx target, enum machine_mode tmode,
return expand_expr_real (treeop0, original_target, tmode,
modifier, alt_rtl);
- case COMPOUND_LITERAL_EXPR:
+#if 0
{
/* Initialize the anonymous variable declared in the compound
literal, then return the variable. */
@@ -10459,6 +10460,7 @@ expand_expr_real_1 (tree exp, rtx target, enum machine_mode tmode,
return expand_expr_real (decl, original_target, tmode,
modifier, alt_rtl);
}
+#endif
default:
return expand_expr_real_2 (&ops, target, tmode, modifier);