This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
internal errors with 1.1.2pre2
- To: egcs-bugs at egcs dot cygnus dot com
- Subject: internal errors with 1.1.2pre2
- From: Miniussi <miniussi at ilog dot fr>
- Date: Thu, 25 Feb 1999 18:13:58 +0100
Hello
I have two familly of problems with gcc 1.1.2pre2
Here is the first one:
miniussi@nice > inf : g++ -c t.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) t.cpp
/var/tmp/ccgZRfA6.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/ccgZRfA6.ii -quiet -dumpbase t.cc -version -o /var/tmp/cceK53A6.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).
t.cpp:4: Internal compiler error.
t.cpp:4: Please submit a full bug report to `egcs-bugs@egcs.cygnus.com'.
t.cpp:4: See <URL:http://egcs.cygnus.com/faq.html#bugreport> for details.
miniussi@nice > inf : more t.cpp
template<int i,class H>
struct reader {
template<int j,int H::*f> struct field {};
};
miniussi@nice > inf :
------------------------------------------------------
miniussi@nice > inf : g++ -c t.cpp
miniussi@nice > inf : more t.cpp
template<int i,class H>
struct reader {
template<int H::*f> struct field {};
};
miniussi@nice > inf :
------------------------------------------------------
miniussi@nice > inf : g++ -c t.cpp
t.cpp:4: Internal compiler error.
t.cpp:4: Please submit a full bug report to `egcs-bugs@egcs.cygnus.com'.
t.cpp:4: See <URL:http://egcs.cygnus.com/faq.html#bugreport> for details.
You have mail in /var/mail/miniussi
miniussi@nice > inf : more t.cpp
template<class H>
struct reader {
template<int H::*f> struct field {};
};
miniussi@nice > inf :
------------------------------------------------------
iniussi@nice > inf : uname -a
SunOS nice 5.5.1 Generic_103640-12 sun4u sparc SUNW,Ultra-1
miniussi@nice > inf :
==================================
here is the second one:
miniussi@nice > inf : g++ -c t.cpp
t.cpp: In instantiation of
`::xxxxxxxxxxx::::xxxxxxxxxxx::RRRRRR<1,C,int>::::xxxxxxxxxxx::::xxxxxxxxxxx::RRRRRR<1,C,int>::fffff<1>':
t.cpp:26: instantiated from here
t.cpp:26: Internal compiler error.
t.cpp:26: Please submit a full bug report to `egcs-bugs@egcs.cygnus.com'.
t.cpp:26: See <URL:http://egcs.cygnus.com/faq.html#bugreport> for details.
miniussi@nice > inf : m t.cpp
namespace xxxxxxxxxxx
{
template<int i,class H, class AT>
struct RRRRRR {
struct bbbb {
typedef H xxxxxx_xxxx;
typedef AT yyyyyyyyy_xxxx;
};
template<AT H::*f>
struct fffff : public bbbb {
AT operator()(H const& h) { return h.*f;}
};
template<AT (H::*m)() const>
struct mmmmmm : public bbbb {
yyyyyyyyy_xxxx operator()(H const& h) { return (h.*m)();}
};
};
}
struct C { int i;};
using namespace xxxxxxxxxxx;
RRRRRR<1,C,int>::fffff<&C::i> Ci;
miniussi@nice > inf :
----------------------------------------
The strange thing, with the last one, is that a small change
in the source code can remove the internal error:
for example, removing an x in the namespace =>
miniussi@nice > inf : g++ -c t.cpp
miniussi@nice > inf : m t.cpp
namespace xxxxxxxxxx
{
template<int i,class H, class AT>
struct RRRRRR {
struct bbbb {
typedef H xxxxxx_xxxx;
typedef AT yyyyyyyyy_xxxx;
};
template<AT H::*f>
struct fffff : public bbbb {
AT operator()(H const& h) { return h.*f;}
};
template<AT (H::*m)() const>
struct mmmmmm : public bbbb {
yyyyyyyyy_xxxx operator()(H const& h) { return (h.*m)();}
};
};
}
struct C { int i;};
using namespace xxxxxxxxxx;
RRRRRR<1,C,int>::fffff<&C::i> Ci;
miniussi@nice > inf :
Thanks,
Alain