summaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-live.c
diff options
context:
space:
mode:
authormatz <matz@138bc75d-0d04-0410-961f-82ee72b054a4>2012-05-29 14:41:53 +0000
committermatz <matz@138bc75d-0d04-0410-961f-82ee72b054a4>2012-05-29 14:41:53 +0000
commit7843e4bcb63ff8966e40b3498c00cb4a4c5783e1 (patch)
tree5534a3c29342dd48c087ead51be0face86e90762 /gcc/tree-ssa-live.c
parent87c952b895ebe6126c0c908e52d15dac3230678e (diff)
downloadgcc-7843e4bcb63ff8966e40b3498c00cb4a4c5783e1.tar.gz
* 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187962 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-ssa-live.c')
-rw-r--r--gcc/tree-ssa-live.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/tree-ssa-live.c b/gcc/tree-ssa-live.c
index dfbf110a015..252020624b4 100644
--- a/gcc/tree-ssa-live.c
+++ b/gcc/tree-ssa-live.c
@@ -835,6 +835,9 @@ remove_unused_locals (void)
{
if (var_ann (var))
remove_referenced_var (var);
+ if (cfun->nonlocal_goto_save_area
+ && TREE_OPERAND (cfun->nonlocal_goto_save_area, 0) == var)
+ cfun->nonlocal_goto_save_area = NULL;
continue;
}
}