Commit e59baa1f by Olivier Hainque Committed by Richard Kenner

integrate.c (expand_inline_function): Ensure non-const actuals don't end up…

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
parent 8dcea3f3
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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment