This is the mail archive of the egcs@egcs.cygnus.com mailing list for the EGCS project. See the EGCS home page for more information.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
the following piece of code crash the compiler:
miniussi@nice > server : m truc.cpp
struct S1 { enum E { v = 1}; };
typedef S1::E TD;
template <TD val> struct S2 {};
miniussi@nice > server : ~/egcs/solaris/112p2/bin/g++ -c truc.cpp -v
Reading specs from
/nfs/home5/miniussi/egcs/solaris/112p2/lib/gcc-lib/sparc-sun-solaris2.5.1/egcs-2.91.62/specs
gcc version egcs-2.91.62 19990224 (egcs-1.1.2 pre-release-2)
/nfs/home5/miniussi/egcs/solaris/112p2/lib/gcc-lib/sparc-sun-solaris2.5.1/egcs-2.91.62/cpp
-lang-c++ -v -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=91
-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) truc.cpp
/var/tmp/ccg9yfzj.ii
GNU CPP version egcs-2.91.62 19990224 (egcs-1.1.2 pre-release-2) (sparc)
#include "..." search starts here:
#include <...> search starts here:
/nfs/home5/miniussi/egcs/solaris/112p2/include/g++
/usr/local/include
/nfs/home5/miniussi/egcs/solaris/112p2/sparc-sun-solaris2.5.1/include
/nfs/home5/miniussi/egcs/solaris/112p2/lib/gcc-lib/sparc-sun-solaris2.5.1/egcs-2.91.62/include
/usr/include
End of search list.
/nfs/home5/miniussi/egcs/solaris/112p2/lib/gcc-lib/sparc-sun-solaris2.5.1/egcs-2.91.62/cc1plus
/var/tmp/ccg9yfzj.ii -quiet -dumpbase truc.cc -version -o /var/tmp/ccFe1WWk.s
GNU C++ version egcs-2.91.62 19990224 (egcs-1.1.2 pre-release-2)
(sparc-sun-solaris2.5.1) compiled by GNU C version egcs-2.91.62 19990224
(egcs-1.1.2 pre-release-2).
truc.cpp:3: Internal compiler error.
truc.cpp:3: Please submit a full bug report to `egcs-bugs@egcs.cygnus.com'.
truc.cpp:3: See <URL:http://egcs.cygnus.com/faq.html#bugreport> for details.
miniussi@nice > server :
The following variants seems to work fine:
struct S1 { enum E { v = 1}; };
typedef S1::E TD;
template <S1::E val> struct S2 {};
-----------------------
enum S1E {v = 1};
struct S1 {
typedef S1E E;//enum E { v = 1};
};
typedef S1::E TD;
template <TD val> struct S2 {};
-----------------------
struct S1 { typedef int E; };
typedef S1::E TD;
template <TD val> struct S2 {};
Is it fixed in the last version ?
Thanks,
Alain