This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

no match for ..., internal compiler error


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]