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:
parent
f451b552cf
commit
edf5cd1d1d
|
@ -1,5 +1,9 @@
|
||||||
2002-04-09 Jason Merrill <jason@redhat.com>
|
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
|
* init.c (build_member_call): For now, don't convert to
|
||||||
intermediate base if it would cause an error.
|
intermediate base if it would cause an error.
|
||||||
|
|
||||||
|
|
|
@ -2470,10 +2470,15 @@ genrtl_start_function (fn)
|
||||||
if (!current_function_cannot_inline)
|
if (!current_function_cannot_inline)
|
||||||
current_function_cannot_inline = cp_function_chain->cannot_inline;
|
current_function_cannot_inline = cp_function_chain->cannot_inline;
|
||||||
|
|
||||||
/* We don't need the saved data anymore. */
|
/* 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));
|
free (DECL_SAVED_FUNCTION_DATA (fn));
|
||||||
DECL_SAVED_FUNCTION_DATA (fn) = NULL;
|
DECL_SAVED_FUNCTION_DATA (fn) = NULL;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* Keep track of how many functions we're presently expanding. */
|
/* Keep track of how many functions we're presently expanding. */
|
||||||
++function_depth;
|
++function_depth;
|
||||||
|
|
Loading…
Reference in New Issue