g++ 2.95 bug: template invalidates code
Joseph Heled
joseph@itginc.com
Thu Aug 19 01:17:00 GMT 1999
uname -a: SunOS new-zeal 5.6 Generic_105181-05 sun4u sparc SUNW,Ultra-5_10
***** Program source:
// from include/g++/stl_relops.h
template <class T>
inline bool operator!=(const T& x, const T& y) {
return !(x == y);
}
enum T {
V1,
};
struct X {
T t : 31;
};
void
f(X& v) {
if( v.t != V1 ) {
}
}
***** Compilation:
Reading specs from
/usr/local/software/installed-gcc-2.95/lib/gcc-lib/sparc-sun-solaris2.6/2.95/specs
gcc version 2.95 19990728 (release)
/ugmake[1]: Leaving directory `/export/home/new-zeal/joseph/bugs/egbugs'
.95/cpp -lang-c++ -v -D__GNUC__=2 -D__GNUG__=2 -D__GNUC_MINOR__=95 -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) b11.cc
/var/tmp/cc0x2EAS.ii
GNU CPP version 2.95 19990728 (release) (sparc)
#include "..." search starts here:
#include <...> search starts here:
/usr/local/software/installed-gcc-2.95/lib/gcc-lib/sparc-sun-solaris2.6/2.95/../../../../include/g++-3
/usr/local/software/installed-gcc-2.95/include
/usr/local/software/installed-gcc-2.95/lib/gcc-lib/sparc-sun-solaris2.6/2.95/../../../../sparc-sun-solaris2.6/include
/usr/local/software/installed-gcc-2.95/lib/gcc-lib/sparc-sun-solaris2.6/2.95/include
/usr/include
End of search list.
The following default directories have been omitted from the search path:
End of omitted list.
/usr/local/software/installed-gcc-2.95/lib/gcc-lib/sparc-sun-solaris2.6/2.95/cc1plus
/var/tmp/cc0x2EAS.ii -quiet -dumpbase b11.cc -version -o /var/tmp/cc0eEfmF.s
GNU C++ version 2.95 19990728 (release) (sparc-sun-solaris2.6) compiled by GNU C
version 2.95 19990728 (release).
b11.cc: In function `void f(X &)':
b11.cc:18: attempt to take address of bit-field structure member `X::t'
gmake[1]: *** [b11] Error 1
More information about the Gcc-bugs
mailing list