diff options
author | John David Anglin <dave.anglin@nrc-cnrc.gc.ca> | 2004-01-15 14:58:06 +0000 |
---|---|---|
committer | John David Anglin <danglin@gcc.gnu.org> | 2004-01-15 14:58:06 +0000 |
commit | 2fabc3d68e20fdc8b9298ec387d3b36b56b2568e (patch) | |
tree | b1fb08c929d872b45bf4140dacbc9cd51a3abd93 /gcc | |
parent | 2ff3688d31131447a9542eae962f5a579093601a (diff) | |
download | gcc-2fabc3d68e20fdc8b9298ec387d3b36b56b2568e.zip gcc-2fabc3d68e20fdc8b9298ec387d3b36b56b2568e.tar.gz gcc-2fabc3d68e20fdc8b9298ec387d3b36b56b2568e.tar.bz2 |
re PR rtl-optimization/12372 (miscompilation of execute/20030307-1.c at -O2 and -Os)
PR optimization/12372
* calls.c (expand_call): Add call_fusage data for stack arguments in
constant calls.
From-SVN: r75926
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/calls.c | 8 |
2 files changed, 14 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 51b568c..5ae1456 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2004-01-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> + + PR optimization/12372 + * calls.c (expand_call): Add call_fusage data for stack arguments in + constant calls. + 2004-01-15 Alan Modra <amodra@bigpond.net.au> * config/rs6000/rs6000.c (uses_TOC): Correct comment. Make static. diff --git a/gcc/calls.c b/gcc/calls.c index 1be581c..f0a59bb 100644 --- a/gcc/calls.c +++ b/gcc/calls.c @@ -3025,6 +3025,14 @@ expand_call (tree exp, rtx target, int ignore) && check_sibcall_argument_overlap (before_arg, &args[i], 1))) sibcall_failure = 1; + + if (flags & ECF_CONST + && args[i].stack + && args[i].value == args[i].stack) + call_fusage = gen_rtx_EXPR_LIST (VOIDmode, + gen_rtx_USE (VOIDmode, + args[i].value), + call_fusage); } /* If we have a parm that is passed in registers but not in memory |