This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/15968] [3.5 Regression] gcc.c-torture/execute/va-arg-22.c fails on hppa64-hp-hpux11.11
- From: "dave at hiauly1 dot hia dot nrc dot ca" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 15 Jun 2004 00:16:20 -0000
- Subject: [Bug target/15968] [3.5 Regression] gcc.c-torture/execute/va-arg-22.c fails on hppa64-hp-hpux11.11
- References: <20040612225836.15968.danglin@gcc.gnu.org>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From dave at hiauly1 dot hia dot nrc dot ca 2004-06-15 00:16 -------
Subject: Re: [3.5 Regression] gcc.c-torture/execute/va-arg-
> Want to take a crack at implementing TARGET_GIMPLIFY_VA_ARG_EXPR, to see if
> that
> fixes it?
I'm working on a small contract at the moment but after it completes
this is definitely something that should be looked at, even if it's
only for the learning experience.
I think the current problem is with va_start. I see the following
error message with the testscase and a simplified version xxx.c:
# ../xgcc -B../ -O1 -s -o xyz.s xxx.c
xxx.c: In function `foo':
xxx.c:37: warning: second parameter of `va_start' not last named argument
xxx.c contains just D(0) and D(1) from the original test. Looking at
the assembler output, I see that we are loading the high order byte
from the argument passed for D(0) instead of that for D(1).
I still don't know why this is happening. The same code works in 3.3
and 3.4, and for some reason nearly identical code seems to work on the
32-bit port. In both cases, empty structs are passed by reference.
Dave
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15968