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