This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Internal compiler error 90
- To: egcs-bugs at cygnus dot com
- Subject: Internal compiler error 90
- From: Warren Burstein <warren at jen dot co dot il>
- Date: Mon, 01 Mar 1999 13:59:04
Two short source files are attached. I didn't write them, so don't ask me
why they did things this way (but if you have a suggestion how to
accomplish the same thing in a way acceptable to the compiler, please let
me know and I'll pass it on). They both compile on "gcc version 2.7.2", but
not on "gcc version egcs-2.90.29 980515 (egcs-1.0.3 release)". And they
both compile in Microsoft Visual C 5.0 (if the extension is changed to
.cpp). What I'm doing here is porting code from MSVC to gcc on linux.
One produces
x.cc:18: Internal compiler error 90.
x.cc:18: Please submit a full bug report to `egcs-bugs@cygnus.com'.
The other produces
y.cc:4: sorry, not implemented: `namespace_decl' not supported by dump_type
y.cc:4: `' is not an aggregate type
y.cc:4: warning: ANSI C++ forbids typedef which does not specify a type
y.cc:4: confused by earlier errors, bailing out
Is there a later egcs that fixes this, or should I go back to gcc 2.7.2 (or
2.8.something)?
thanks
#include <map>
template< class ClassType > class BaseTlsPtr { };
template< class ClassType , class ActualClassType >
class TlsPtr : public BaseTlsPtr < ClassType > {
public:
virtual ~TlsPtr ();
protected:
typedef std::map <unsigned long, ClassType*> Thread2Class;
};
template< class ClassType , class ActualClassType >
TlsPtr< ClassType, ActualClassType >::~TlsPtr () {}
template< class ClassType , class ActualClassType >
class TlsPtrDefVal : public TlsPtr < ClassType, ActualClassType > {
Thread2Class::iterator it;
};
#include <map>
template <class T> class foo {
typedef std::auto_ptr<T> ElementPtr;
};