schmidt%crimee.ics.uci.edu@PARIS.ICS.UCI.EDU ("Douglas C. Schmidt") (01/03/89)
Hi,
The following C++ program is incorrectly diagnosed by g++ 1.32:
----------------------------------------
#include <stream.h>
class Y {
public:
static int i;
};
main ( ) {
cout << Y::i << "\n";
}
----------------------------------------
Here are the diagnostics:
----------------------------------------
g++ version 1.32.0
/usr/public/lib/g++/gcc-cpp -+ -v -I/cd/ua/schmidt/include/ -undef
-D__GNU__ -D__GNUG__ -Dsparc -Dsun -Dunix foo.C /tmp/cca15828.cpp
GNU CPP version 1.32
/usr/public/lib/g++/gcc-c++ /tmp/cca15828.cpp -quiet -dumpbase foo.C
-fstrength-reduce -finline-functions -fmemoize-lookups -fsave-memoized
-fchar-charconst -noreg -version -o /tmp/cca15828.s
GNU C++ version 1.32.0 (sparc) compiled by GNU C version 1.31.
In function main ():
foo.C:9: bad argument 0 for function `ostream::operator << (const char
*)' (type was struct ostream *)
foo.C:9: invalid operands to binary <<
----------------------------------------
if the expression
Y::i
is replaced by
int ( Y::i )
the program works fine. cfront accepts this, however.
Doug