integrate.c (expand_inline_function): Ensure non-const actuals don't end up const in the caller's flow after...
* integrate.c (expand_inline_function): Ensure non-const actuals don't end up const in the caller's flow after conversion to possibly const formal type. From-SVN: r65794
This commit is contained in:
parent
8dcea3f35a
commit
e59baa1f83
|
@ -1,3 +1,9 @@
|
|||
2003-04-18 Olivier Hainque <hainque@act-europe.fr>
|
||||
|
||||
* integrate.c (expand_inline_function): Ensure non-const actuals
|
||||
don't end up const in the caller's flow after conversion to possibly
|
||||
const formal type.
|
||||
|
||||
2003-04-18 Vincent Celier <celier@gnat.com>
|
||||
|
||||
* dwarf2out.c (loc_descriptor_from_tree): Treat all *_MOD_EXPR
|
||||
|
|
|
@ -810,6 +810,14 @@ expand_inline_function (fndecl, parms, target, ignore, type,
|
|||
else
|
||||
arg_vals[i] = 0;
|
||||
|
||||
/* If the formal type was const but the actual was not, we might
|
||||
end up here with an rtx wrongly tagged unchanging in the caller's
|
||||
context. Fix that. */
|
||||
if (arg_vals[i] != 0
|
||||
&& (GET_CODE (arg_vals[i]) == REG || GET_CODE (arg_vals[i]) == MEM)
|
||||
&& ! TREE_READONLY (TREE_VALUE (actual)))
|
||||
RTX_UNCHANGING_P (arg_vals[i]) = 0;
|
||||
|
||||
if (arg_vals[i] != 0
|
||||
&& (! TREE_READONLY (formal)
|
||||
/* If the parameter is not read-only, copy our argument through
|
||||
|
|
Loading…
Reference in New Issue