This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
no match for ..., internal compiler error
- To: gcc-bugs at gcc dot gnu dot org
- Subject: no match for ..., internal compiler error
- From: Loring Holden <lsh at cs dot brown dot edu>
- Date: Thu, 29 Jul 1999 01:30:08 -0400 (EDT)
I got what I think is a g++ compiler error, building g++ from the CVS sources
as of 11:23 pm EDT on Jul 28, 1999. I also got an internal compiler error I
think is related.
Version:
GNU C++ version 2.96 19990728 (experimental) on sparc-sun-solaris2.7
Options:
% g++ g++conditional2.C
g++conditional2.C: In function `void problem_function()':
g++conditional2.C:13: no match for `bool ? const Wtransf (&)() : Wtransf'
% g++ g++conditional3.C
g++conditional3.C: In method `class Wvec hashvar<Wvec>::get() const':
g++conditional3.C:27: instantiated from here
g++conditional3.C:21: Internal compiler error in `emit_move_insn', at expr.c:2565
Please submit a full bug report.
See <URL:http://egcs.cygnus.com/faq.html#bugreport> for instructions.
Thanks,
Loring
PS-
The source to g++conditional2.C:
class Wtransf {};
const Wtransf Identity2() = Wtransf();
class HELPER {
public:
int current() const { return 0; }
};
void
problem_function()
{
HELPER tm;
Wtransf delta = (tm.current()) ? Identity2 : Wtransf();
}
The source to g++conditional3.C:
template <class V>
class _vec3d
{
public:
double _x, _y;
};
class Wvec : public _vec3d<int> { };
template <class T>
class TDI {
public:
T &get();
};
template <class T>
class hashvar {
public :
T _val;
TDI<T> *val() const;
T get() const { return true ? val()->get() : _val; }
};
int
main() {
hashvar<Wvec> CONSTRAINT_DIR;
CONSTRAINT_DIR.get();
}
g++ -v --save-temps g++conditional2.C output:
Reading specs from /map/gfx0/users/lsh/apps/egcs/lib/gcc-lib/sparc-sun-solaris2.7/2.96/specs
gcc version 2.96 19990728 (experimental)
Reading specs from /map/gfx0/users/lsh/apps/egcs/lib/gcc-lib/sparc-sun-solaris2.7/2.96/specs
gcc version 2.96 19990728 (experimental)
/map/gfx0/users/lsh/apps/egcs/lib/gcc-lib/sparc-sun-solaris2.7/2.96/cpp -lang-c++ -v -D__GNUC__=2 -D__GNUG__=2 -D__GNUC_MINOR__=96 -D__cplusplus -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) g++conditional2.C /var/tmp/ccThFzcY.ii
GNU CPP version 2.96 19990728 (experimental) (sparc)
#include "..." search starts here:
#include <...> search starts here:
/map/gfx0/users/lsh/apps/egcs/lib/gcc-lib/sparc-sun-solaris2.7/2.96/../../../../include/g++-3
/usr/local/include
/map/gfx0/users/lsh/apps/egcs/lib/gcc-lib/sparc-sun-solaris2.7/2.96/../../../../sparc-sun-solaris2.7/include
/map/gfx0/users/lsh/apps/egcs/lib/gcc-lib/sparc-sun-solaris2.7/2.96/include
/usr/include
End of search list.
The following default directories have been omitted from the search path:
End of omitted list.
/map/gfx0/users/lsh/apps/egcs/lib/gcc-lib/sparc-sun-solaris2.7/2.96/cc1plus /var/tmp/ccThFzcY.ii -quiet -dumpbase g++conditional2.cc -version -o /var/tmp/ccWBL7NQ.s
GNU C++ version 2.96 19990728 (experimental) (sparc-sun-solaris2.7) compiled by GNU C version 2.96 19990728 (experimental).
g++conditional2.C: In function `void problem_function()':
g++conditional2.C:13: no match for `bool ? const Wtransf : Wtransf'
g++ -v --save-temps g++conditional3.C output:
Reading specs from /map/gfx0/users/lsh/apps/egcs/lib/gcc-lib/sparc-sun-solaris2.7/2.96/specs
gcc version 2.96 19990728 (experimental)
/map/gfx0/users/lsh/apps/egcs/lib/gcc-lib/sparc-sun-solaris2.7/2.96/cpp -lang-c++ -v -D__GNUC__=2 -D__GNUG__=2 -D__GNUC_MINOR__=96 -D__cplusplus -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) g++conditional3.C /var/tmp/cc4BGGGg.ii
GNU CPP version 2.96 19990728 (experimental) (sparc)
#include "..." search starts here:
#include <...> search starts here:
/map/gfx0/users/lsh/apps/egcs/lib/gcc-lib/sparc-sun-solaris2.7/2.96/../../../../include/g++-3
/usr/local/include
/map/gfx0/users/lsh/apps/egcs/lib/gcc-lib/sparc-sun-solaris2.7/2.96/../../../../sparc-sun-solaris2.7/include
/map/gfx0/users/lsh/apps/egcs/lib/gcc-lib/sparc-sun-solaris2.7/2.96/include
/usr/include
End of search list.
The following default directories have been omitted from the search path:
End of omitted list.
/map/gfx0/users/lsh/apps/egcs/lib/gcc-lib/sparc-sun-solaris2.7/2.96/cc1plus /var/tmp/cc4BGGGg.ii -quiet -dumpbase g++conditional3.cc -version -o /var/tmp/ccx7f8jh.s
GNU C++ version 2.96 19990728 (experimental) (sparc-sun-solaris2.7) compiled by GNU C version 2.96 19990728 (experimental).
g++conditional3.C: In method `class Wvec hashvar<Wvec>::get() const':
g++conditional3.C:27: instantiated from here
g++conditional3.C:21: Internal compiler error in `emit_move_insn', at expr.c:2565
Please submit a full bug report.
See <URL:http://egcs.cygnus.com/faq.html#bugreport> for instructions.
The .ii files were the same as the .C files (already included above), except
for cpp line information at the beginning of each .ii file