diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9ee08dfca07d2d130906babd8454517030df80af..7eea885e355b458013b07aa746fa3d2596108fea 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2011-02-02 Alexandre Oliva <aoliva@redhat.com> + + 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 <aoliva@redhat.com> PR debug/47498 diff --git a/gcc/gimple-low.c b/gcc/gimple-low.c index 2c585e302662be6d0a392db405381ffd22793374..4e49241429060395d52756eb771f36a989170264 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 24a6dd023735b028151ef33e9fa7f2a047d31a2f..0a10df70422f9536a69c00ee3201cc0b0be25036 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. */