re PR rtl-optimization/6189 (Regression from 3.0.x: g++ -O3 generates wrong code)

PR optimization/6189
        * semantics.c (genrtl_start_function): Don't free
        DECL_SAVED_FUNCTION_DATA for inline functions.

From-SVN: r52082
This commit is contained in:
Jason Merrill 2002-04-09 13:01:59 -04:00 committed by Jason Merrill
parent f451b552cf
commit edf5cd1d1d
2 changed files with 12 additions and 3 deletions

View File

@ -1,5 +1,9 @@
2002-04-09 Jason Merrill <jason@redhat.com>
PR optimization/6189
* semantics.c (genrtl_start_function): Don't free
DECL_SAVED_FUNCTION_DATA for inline functions.
* init.c (build_member_call): For now, don't convert to
intermediate base if it would cause an error.

View File

@ -2470,9 +2470,14 @@ genrtl_start_function (fn)
if (!current_function_cannot_inline)
current_function_cannot_inline = cp_function_chain->cannot_inline;
/* We don't need the saved data anymore. */
free (DECL_SAVED_FUNCTION_DATA (fn));
DECL_SAVED_FUNCTION_DATA (fn) = NULL;
/* We don't need the saved data anymore. Unless this is an inline
function; we need the named return value info for
cp_copy_res_decl_for_inlining. */
if (! DECL_INLINE (fn))
{
free (DECL_SAVED_FUNCTION_DATA (fn));
DECL_SAVED_FUNCTION_DATA (fn) = NULL;
}
}
/* Keep track of how many functions we're presently expanding. */