internal compiler error (local struct to select template)
Bob Sidebotham
rns@fore.com
Sun Oct 25 10:33:00 GMT 1998
This gets an internal compiler error. I suspect that I'm not really
allowed to put struct fun inside set() (a minor annoyance) if I want
to use it for template resolution. Pushing it up a level into class
xxx makes the problem go away.
class base {
public:
template<class F> void iterate(const F&) {
F::func();
}
};
template<class T> class xxx {
public:
base x;
void set() {
struct fun {
static void func() { }
};
x.iterate(fun());
}
};
xxx<int> ZZ;
% g++ -v -c test7.cc
Reading specs from /us/swswbld/Compilers/egcs/release/1.1/sparc-sun-solaris2.6/lib/gcc-lib/sparc-sun-solaris2.6/egcs-2.91.57/specs
gcc version egcs-2.91.57 19980901 (egcs-1.1 release)
/us/swswbld/Compilers/egcs/release/1.1/sparc-sun-solaris2.6/lib/gcc-lib/sparc-sun-solaris2.6/egcs-2.91.57/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) test7.cc /var/tmp/ccd1hwKZ.ii
GNU CPP version egcs-2.91.57 19980901 (egcs-1.1 release) (sparc)
#include "..." search starts here:
#include <...> search starts here:
/us/swswbld/Compilers/egcs/release/1.1/sparc-sun-solaris2.6/include/g++
/us/swswbld/Compilers/egcs/release/1.1/sparc-sun-solaris2.6/sparc-sun-solaris2.6/include
/us/swswbld/Compilers/egcs/release/1.1/sparc-sun-solaris2.6/lib/gcc-lib/sparc-sun-solaris2.6/egcs-2.91.57/include
/usr/include
End of search list.
/us/swswbld/Compilers/egcs/release/1.1/sparc-sun-solaris2.6/lib/gcc-lib/sparc-sun-solaris2.6/egcs-2.91.57/cc1plus /var/tmp/ccd1hwKZ.ii -quiet -dumpbase test7.cc -version -o /var/tmp/ccUybrdT.s
GNU C++ version egcs-2.91.57 19980901 (egcs-1.1 release) (sparc-sun-solaris2.6) compiled by GNU C version egcs-2.91.57 19980901 (egcs-1.1 release).
test7.cc:19: Internal compiler error.
test7.cc:19: Please submit a full bug report to `egcs-bugs@cygnus.com'.
Bob Sidebotham
rns@fore.com
More information about the Gcc-bugs
mailing list