ICE on attached test case. logout ~/tmp>c++ -c testcase-cast.cxx testcase-cast.cxx: In member function `virtual bool REChar::equal(const RE&)': testcase-cast.cxx:17: error: cannot convert from base `RE' to derived type ` REChar' via virtual base `RE' testcase-cast.cxx:17: internal compiler error: in comptypes, at cp/typeck.c:913 Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions. Release: 3.3 20020920 (experimental) Environment: System: FreeBSD logout.sh.cvut.cz 4.6-STABLE FreeBSD 4.6-STABLE #0: Thu Aug 1 01:02:04 CEST 2002 root@logout.sh.cvut.cz:/usr/src/sys/compile/logout i386 host: i386-unknown-freebsd4.6 build: i386-unknown-freebsd4.6 target: i386-unknown-freebsd4.6 configured with: ../srcdir/configure --enable-threads --enable-languages=c,c++ --enable-version-specific-runtime-libs --prefix=/home/4/wilx --with-arch=i686 --with-cpu=i686 How-To-Repeat: #include <typeinfo> class RE { public: virtual bool equal(const RE& re) = 0; }; class REChar : virtual public RE { char ch; public: virtual bool equal(const RE& re); }; bool REChar::equal(const RE& re) { if (typeid(re) == typeid(REChar)) if (ch == static_cast<const REChar&>(re).ch) return true; return false; }
State-Changed-From-To: open->analyzed State-Changed-Why: Confirmed.
*** This bug has been marked as a duplicate of 8031 ***