This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
c++/7306: Regression: gcc-3.x fails to compile virtual inheritance with variable number of argument methode
- From: Matthias Klose <doko at klose dot in-berlin dot de>
- To: gcc-gnats at gcc dot gnu dot org, debian-gcc at lists dot debian dot org
- Cc: martin at v dot loewis dot de
- Date: Sun, 14 Jul 2002 13:45:00 +0200
- Subject: c++/7306: Regression: gcc-3.x fails to compile virtual inheritance with variable number of argument methode
- Reply-to: 151357 at bugs dot debian dot org
>Number: 7306
>Category: c++
>Synopsis: Regression: gcc-3.x fails to compile virtual inheritance with variable number of argument methode
>Confidential: no
>Severity: serious
>Priority: high
>Responsible: unassigned
>State: open
>Class: rejects-legal
>Submitter-Id: net
>Arrival-Date: Sun Jul 14 04:56:00 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator: "Stephane Magnenat" <nct@ysagoon.com>
>Release: 3.1 (Debian) (Debian unstable)
>Organization:
The Debian Project
>Environment:
System: Debian GNU/Linux (unstable)
Architecture: i686
host: i386-linux
configured with: /mnt/data/gcc-3.1/gcc-3.1-3.1ds2/src/configure -v --enable-languages=c,c++,java,f77,proto,objc,ada --prefix=/usr --mandir=$\(prefix\)/share/man --infodir=$\(prefix\)/share/info --with-gxx-include-dir=$\(prefix\)/include/g++-v3-3.1 --enable-shared --with-system-zlib --enable-long-long --enable-nls --without-included-gettext --enable-clocale=gnu --enable-threads=posix --enable-java-gc=boehm --enable-objc-gc i386-linux
>Description:
[ Reported to the Debian BTS as report #151357.
Please CC 151357@bugs.debian.org on replies.
Log of report can be found at http://bugs.debian.org/151357 ]
Stephane Magnenat <nct@ysagoon.com> reports:
When I try to compile C++ code with virtual inheritance and variable number of
argument method, the compilation fails with the following message :
bugreport.cpp:35: generic thunk code fails for method `virtual void
Virt::p(const char*, ...)' which uses `...'
It is working fine with gcc 2.95.x
#include <stdio.h>
#include <stdarg.h>
class Base
{
public:
Base() { }
virtual void p(const char *format, ...)=0;
};
class Der1: public virtual Base
{
public:
Der1():Base() { }
virtual void p(const char *format, ...)=0;
};
class Der2: public virtual Base
{
public:
Der2():Base() { }
virtual void p(const char *format, ...)=0;
};
class Virt:public virtual Der1, public virtual Der2
{
public:
Virt():Der1(),Der2() { }
virtual void p(const char *format, ...)
{
va_list arglist;
va_start(arglist,format);
vprintf(format, arglist);
va_end(arglist);
}
};
int main(int argc, char *argv[])
{
Virt v;
v.p("Hello %d\n", 10);
}
>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted: