From aaa2ac931e8979147eeac7fd29d548bcb1ddef99 Mon Sep 17 00:00:00 2001 From: Alexandre Oliva Date: Wed, 2 Feb 2011 05:44:38 +0000 Subject: [PATCH] re PR debug/47106 (-fcompare-debug failure (length) with -fpartial-inlining -flto -fconserve-stack) PR debug/47106 PR debug/47402 * tree-inline.c (declare_return_variable): Add result decl to local decls only once. * gimple-low.c (record_vars_into): Mark newly-created variables as referenced. From-SVN: r169514 --- gcc/ChangeLog | 9 +++++++++ gcc/gimple-low.c | 2 ++ gcc/tree-inline.c | 1 - 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9ee08dfca07..7eea885e355 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2011-02-02 Alexandre Oliva + + PR debug/47106 + PR debug/47402 + * tree-inline.c (declare_return_variable): Add result decl to + local decls only once. + * gimple-low.c (record_vars_into): Mark newly-created variables + as referenced. + 2011-02-02 Alexandre Oliva PR debug/47498 diff --git a/gcc/gimple-low.c b/gcc/gimple-low.c index 2c585e30266..4e492414290 100644 --- a/gcc/gimple-low.c +++ b/gcc/gimple-low.c @@ -907,6 +907,8 @@ record_vars_into (tree vars, tree fn) /* Record the variable. */ add_local_decl (cfun, var); + if (gimple_referenced_vars (cfun)) + add_referenced_var (var); } if (fn != current_function_decl) diff --git a/gcc/tree-inline.c b/gcc/tree-inline.c index 24a6dd02373..0a10df70422 100644 --- a/gcc/tree-inline.c +++ b/gcc/tree-inline.c @@ -2864,7 +2864,6 @@ declare_return_variable (copy_body_data *id, tree return_slot, tree modify_dest, } DECL_SEEN_IN_BIND_EXPR_P (var) = 1; - add_local_decl (DECL_STRUCT_FUNCTION (caller), var); /* Do not have the rest of GCC warn about this variable as it should not be visible to the user. */