From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 5479 invoked by alias); 17 Mar 2003 09:56:09 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 5075 invoked by uid 71); 17 Mar 2003 09:56:01 -0000 Date: Mon, 17 Mar 2003 09:56:00 -0000 Message-ID: <20030317095601.5053.qmail@sources.redhat.com> To: nobody@gcc.gnu.org Cc: gcc-prs@gcc.gnu.org, From: John Sturton Subject: Re: middle-end/9152: Undefined virtual thunks Reply-To: John Sturton X-SW-Source: 2003-03/txt/msg01112.txt.bz2 List-Id: The following reply was made to PR c++/9152; it has been noted by GNATS. From: John Sturton To: bangerth@dealii.org, gcc-bugs@gcc.gnu.org, gcc-prs@gcc.gnu.org, john.sturton@sescoi.fr, nobody@gcc.gnu.org, gcc-gnats@gcc.gnu.org Cc: Subject: Re: middle-end/9152: Undefined virtual thunks Date: Mon, 17 Mar 2003 10:52:00 +0100 This is a multi-part message in MIME format. --------------0A8AF3632A1EC3EEE823B606 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=us-ascii bangerth@dealii.org wrote: > > Synopsis: Undefined virtual thunks > > State-Changed-From-To: open->feedback > State-Changed-By: bangerth > State-Changed-When: Sat Mar 15 03:42:57 2003 > State-Changed-Why: > Hm, I cannot reproduce this with 3.2, 3.2.2, or any newer > version of gcc. Can you possibly check and see whether this > behavior still persists on your system? > > Thanks > Wolfgang > > http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=9152 Hi, Yes, I still have the problem with my 3.2 Mandrake installation. I have re-attached the output from the compilation. Is there anything else I can provide? Cheers, John Sturton --------------0A8AF3632A1EC3EEE823B606 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=us-ascii; name="gbug.log2" Content-Disposition: inline; filename="gbug.log2" class CPureVirtualBase1 { public: CPureVirtualBase1(void); virtual ~CPureVirtualBase1(void); virtual void Import(void)=0; virtual void Export(void) const =0; }; // CPureVirtualBase1 #define DECLARE_CLASS(_className)\ {\ public:\ _className(void);\ virtual ~_className(void);\ virtual void Import(void);\ virtual void Export(void) const;\ }; class CBase2 : virtual public CPureVirtualBase1 DECLARE_CLASS(CBase2) class CBase3 : virtual public CPureVirtualBase1, public CBase2 DECLARE_CLASS(CBase3) class CBase4 : virtual public CPureVirtualBase1 DECLARE_CLASS(CBase4) class CBase5 : public CBase4, public CBase3 DECLARE_CLASS(CBase5) CPureVirtualBase1::CPureVirtualBase1(void) { } // CPureVirtualBase1::CPureVirtualBase1 CPureVirtualBase1::~CPureVirtualBase1(void) { } // CPureVirtualBase1::~CPureVirtualBase1 #define DEFINE_CLASS(_className) \ _className::_className(void) {}\ _className::~_className(void) {}\ void _className::Import(void) {}\ void _className::Export(void) const {} DEFINE_CLASS(CBase2) DEFINE_CLASS(CBase3) DEFINE_CLASS(CBase4) DEFINE_CLASS(CBase5) int main(void) { return 0; } // main pc-linux1[john]:/serv1-3/save/john/dev/14/gcc *14*> g++ gbug.cpp -v Reading specs from /usr/lib/gcc-lib/i586-mandrake-linux-gnu/3.2/specs Configured with: ../configure --prefix=/usr --libdir=/usr/lib --with-slibdir=/lib --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --disable-checking --enable-long-long --enable-__cxa_atexit --enable-languages=c,c++,ada,f77,objc,java --host=i586-mandrake-linux-gnu --with-system-zlib Thread model: posix gcc version 3.2 (Mandrake Linux 9.0 3.2-1mdk) /usr/lib/gcc-lib/i586-mandrake-linux-gnu/3.2/cc1plus -v -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=0 -D__GXX_ABI_VERSION=102 -D__ELF__ -Dunix -D__gnu_linux__ -Dlinux -D__ELF__ -D__unix__ -D__gnu_linux__ -D__linux__ -D__unix -D__linux -Asystem=posix -D__NO_INLINE__ -D__STDC_HOSTED__=1 -D_GNU_SOURCE -Acpu=i386 -Amachine=i386 -Di386 -D__i386 -D__i386__ -D__tune_i586__ -D__tune_pentium__ gbug.cpp -D__GNUG__=3 -D__DEPRECATED -D__EXCEPTIONS -quiet -dumpbase gbug.cpp -version -o /usr4/john/tmp/ccWkFMi e.s GNU CPP version 3.2 (Mandrake Linux 9.0 3.2-1mdk) (cpplib) (i386 Linux/ELF) GNU C++ version 3.2 (Mandrake Linux 9.0 3.2-1mdk) (i586-mandrake-linux-gnu) compiled by GNU C version 3.2 (Mandrake Linux 9.0 3.2-1mdk). ignoring nonexistent directory "/usr/i586-mandrake-linux-gnu/include" #include "..." search starts here: #include <...> search starts here: /usr/include/c++/3.2 /usr/include/c++/3.2/i586-mandrake-linux-gnu /usr/include/c++/3.2/backward /usr/local/include /usr/lib/gcc-lib/i586-mandrake-linux-gnu/3.2/include /usr/include End of search list. as -V -Qy -o /usr4/john/tmp/ccpgGezn.o /usr4/john/tmp/ccWkFMie.s GNU assembler version 2.12.90.0.15 (i586-mandrake-linux-gnu) using BFD version 2.12.90.0.15 20020717 /usr/lib/gcc-lib/i586-mandrake-linux-gnu/3.2/collect2 --eh-frame-hdr -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 /usr/lib/gcc-lib/i586-mandrake-linux-gnu/3.2/../../../crt1.o /usr/lib/gcc-lib/i586-mandrake-linux-gnu/3.2/../../../crti.o /usr/lib/gcc-lib/i586-mandrake-linux-gnu/3.2/crtbegin.o -L/usr/lib/gcc-lib/i586-mandrake-linux-gnu/3.2 -L/usr/lib/gcc-lib/i586-mandrake-linux-gnu/3.2/../../.. /usr4/john/tmp/ccpgGezn.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc-lib/i586-mandrake-linux-gnu/3 .2/crtend.o /usr/lib/gcc-lib/i586-mandrake-linux-gnu/3.2/../../../crtn.o /usr4/john/tmp/ccpgGezn.o(.gnu.linkonce.d._ZTC6CBase54_6CBase3+0x3c): undefined reference to `virtual thunk [v:0,-12] to CBase3::~CBase3 [in-charge]()' /usr4/john/tmp/ccpgGezn.o(.gnu.linkonce.d._ZTC6CBase54_6CBase3+0x40): undefined reference to `virtual thunk [v:0,-12] to CBase3::~CBase3 [in-charge deleting]()' /usr4/john/tmp/ccpgGezn.o(.gnu.linkonce.d._ZTC6CBase54_6CBase3+0x44): undefined reference to `virtual thunk [v:0,-16] to CBase3::Import()' /usr4/john/tmp/ccpgGezn.o(.gnu.linkonce.d._ZTC6CBase54_6CBase3+0x48): undefined reference to `virtual thunk [v:0,-20] to CBase3::Export() const' collect2: ld returned 1 exit status --------------0A8AF3632A1EC3EEE823B606--