This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug c++/20916] New: va_list passed to a function gets messed up by a call to another function


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]