This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/20916] New: va_list passed to a function gets messed up by a call to another function
- From: "moritz at bunkus dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 9 Apr 2005 12:28:13 -0000
- Subject: [Bug c++/20916] New: va_list passed to a function gets messed up by a call to another function
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
I'll attach a short sample file that works nicely on 32 bit architectures but
breaks on AMD64. A function taking varargs calls va_start and passes that
va_list object to another function. This one will output it twice with vprintf.
Between the two calls to vprintf there's another function call. The second call
to vprint produces wrong output, e.g.
::mxmsg(1) string honk int 42 string cow!
::mxmsg(2) string int 1697834872 string
The same code produces correct output on 32bit platforms.
--
Summary: va_list passed to a function gets messed up by a call to
another function
Product: gcc
Version: 3.4.2
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: moritz at bunkus dot org
CC: gcc-bugs at gcc dot gnu dot org
GCC host triplet: x86_64-redhat-linux
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20916