Sigsegv egcs 1.0.1 duplicated "template <..>" clause

Gregory Bond gnb@itga.com.au
Tue Jun 30 00:18:00 GMT 1998


The following admittedly bogus code code causes egcs to sigsev (Sun Sparc, 
Ultra450, Solaris 2.6)

Removing either the bogus extra "template <...>" at line 4 or the member 
template constructor means we get the expected errors rather than coredump.

----------------
template <int digits, class T = bool> class F;

template <int digits, class T>
template <int digits, class T>
F<digits, T> operator+(F<digits, T>, F<digits, T>);

template <int digits, class T = bool> class F 
{
   public:
      F();		// Initialized to 0

      // Do scale conversion
      template <int n> F(F<n, T>);
};

typedef  F<2,bool> f2;

void bar()
{
   f2 a, b;
   a + b;
}
/*
g++ -v -c tt3.C
Reading specs from /usr/local/egcs/lib/gcc-lib/sparc-sun-solaris2.6/egcs-2.90.23/specs
gcc version egcs-2.90.23 980102 (egcs-1.0.1 release)
 /usr/local/egcs/lib/gcc-lib/sparc-sun-solaris2.6/egcs-2.90.23/cpp -lang-c++ -v -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=90 -Dsparc -Dsun -Dunix -D__svr4__ -D__SVR4 -D__sparc__ -D__sun__ -D__unix__ -D__svr4__ -D__SVR4 -D__sparc -D__sun -D__unix -Asystem(unix) -Asystem(svr4) -D__EXCEPTIONS -D__GCC_NEW_VARARGS__ -Acpu(sparc) -Amachine(sparc) tt3.C /var/tmp/cc0wtg78.ii
GNU CPP version egcs-2.90.23 980102 (egcs-1.0.1 release) (sparc)
#include "..." search starts here:
#include <...> search starts here:
 /usr/local/egcs/include/g++
 /usr/local/include
 /usr/local/egcs/sparc-sun-solaris2.6/include
 /usr/local/egcs/lib/gcc-lib/sparc-sun-solaris2.6/egcs-2.90.23/include
 /usr/include
End of search list.
 /usr/local/egcs/lib/gcc-lib/sparc-sun-solaris2.6/egcs-2.90.23/cc1plus /var/tmp/cc0wtg78.ii -quiet -dumpbase tt3.cc -version -o /var/tmp/cc0wtg78.s
GNU C++ version egcs-2.90.23 980102 (egcs-1.0.1 release) (sparc-sun-solaris2.6) compiled by GNU C version egcs-2.90.23 980102 (egcs-1.0.1 release).
tt3.C: In function `void bar()':
tt3.C:21: Internal compiler error.
tt3.C:21: Please submit a full bug report to `egcs-bugs@cygnus.com'.
*/





More information about the Gcc-bugs mailing list