From mboxrd@z Thu Jan 1 00:00:00 1970 From: snyder@fnal.gov To: gcc-gnats@gcc.gnu.org Subject: c++/3130: ICE in build_rtti_vtbl_entries with complex virtual derivation Date: Mon, 11 Jun 2001 15:46:00 -0000 Message-id: <200106112229.f5BMTkg26878@karma.fnal.gov> X-SW-Source: 2001-06/msg00443.html List-Id: >Number: 3130 >Category: c++ >Synopsis: ICE in build_rtti_vtbl_entries with complex virtual derivation >Confidential: no >Severity: critical >Priority: medium >Responsible: unassigned >State: open >Class: ice-on-legal-code >Submitter-Id: net >Arrival-Date: Mon Jun 11 15:46:00 PDT 2001 >Closed-Date: >Last-Modified: >Originator: scott snyder >Release: 3.0 20010611 (prerelease) >Organization: >Environment: System: Linux karma 2.2.16-22 #1 Tue Aug 22 16:49:06 EDT 2000 i686 unknown Architecture: i686 host: i686-pc-linux-gnu build: i686-pc-linux-gnu target: i686-pc-linux-gnu configured with: ../egcs/configure --prefix=/usr/local/egcs --enable-threads=posix --enable-long-long >Description: I get an ICE for the source below: $ ./cc1plus yy.cc yy.cc:14: Internal error #20010127. yy.cc:14: Internal compiler error in build_rtti_vtbl_entries, at cp/class.c: 8199 Please submit a full bug report, with preprocessed source if appropriate. See for instructions. >How-To-Repeat: ------------------------------------------------------------ struct A { virtual ~A (); }; struct B { virtual ~B (); }; struct C : virtual public A, virtual public B {}; class D : public virtual C {}; class E : public virtual C, public virtual D {}; ------------------------------------------------------------ >Fix: >Release-Note: >Audit-Trail: >Unformatted: I have this patch from Nathan installed: 2001-06-11 Nathan Sidwell PR c++/3089 * class.c (dfs_accumulate_vtbl_inits): Always walk down the hierarchy looking for primary bases for a ctor vtable. Recursively call oneself, if we meet our primary via this route and haven't met it yet via inheritance graph order. But i get the ICE both with and without the patch.