This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/15885] New: spurious or misleading va_start warning
- From: "gcc-bugzilla at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 8 Jun 2004 23:38:52 -0000
- Subject: [Bug c++/15885] New: spurious or misleading va_start warning
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
When compiling the source below, gcc produces the warnings
x.cc:8: warning: second parameter of `va_start' not last named argument
x.cc:8: warning: second parameter of `va_start' not last named argument
which is at best misleading, as the second argument of va_start actually
is the last named argument. gcc appears to give this warning in this
case if the argument is also passed by reference somewhere in the
function, as it is here in the call to bar().
I don't have my copy of the standard handy, so i'm not completely sure
that there isn't a restriction about taking a reference to an argument
used in va_start. However, even if this test case is actually not valid,
the warning message should be changed to reflect the true problem.
Environment:
System: Linux karma 2.6.6 #15 Thu May 13 15:07:54 EDT 2004 i686 i686 i386 GNU/Linux
Architecture: i686
<machine, os, target, libraries (multiple lines)>
host: i686-pc-linux-gnu
build: i686-pc-linux-gnu
target: i686-pc-linux-gnu
configured with: /home/sss/gcc/gcc/configure --prefix=/usr/local/gcc --enable-threads=posix --enable-long-long --enable-languages=c,c++,f95
How-To-Repeat:
Compile the following:
----------------------------
#include <cstdarg>
void bar(const int&);
void foo (int x, ...)
{
va_list ap;
va_start (ap, x);
bar(x);
}
----------------------------
------- Additional Comments From snyder at fnal dot gov 2004-06-08 23:38 -------
Fix:
<how to correct or work around the problem, if known (multiple lines)>
--
Summary: spurious or misleading va_start warning
Product: gcc
Version: 3.5.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: snyder at fnal dot gov
CC: gcc-bugs at gcc dot gnu dot org
GCC build triplet: i686-pc-linux-gnu
GCC host triplet: i686-pc-linux-gnu
GCC target triplet: i686-pc-linux-gnu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15885