This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Internal compiler error 90


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;
};


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]