This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/23775] [4.1 Regression] wrong code in argument passing
- From: "jakub at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 9 Sep 2005 17:43:41 -0000
- Subject: [Bug target/23775] [4.1 Regression] wrong code in argument passing
- References: <20050908023129.23775.snyder@fnal.gov>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From jakub at gcc dot gnu dot org 2005-09-09 17:43 -------
The difference between 4.0 and HEAD is the expr.c hunk of
http://gcc.gnu.org/ml/gcc-patches/2005-07/msg02021.html
If Paolo's reversion of that:
http://gcc.gnu.org/ml/gcc-patches/2005-09/msg00589.html
makes it in, the testcase will pass again.
The real problem is I think that when calls.c decides to save stack area
under an argument for the inner expand_call, but that argument partially overlaps
with the result of the call, we save/restore the argument with the inner
expand_call's argument mode and don't just limit to the actual bytes that
have already been initialized. So we read some uninitialized bits from the
stack and overwrite with them the computed argument.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23775