zhao@wiener.usc.edu (11/08/88)
I believe the following example demonstrates a bug in the type checking of g++ 1.27.0. Machine: SUN3/60M OS: 3.4 [1]: cat bug.cc // File bug.cc class foo { private: int s1, s2; public: foo () { s1 = 0; s2 = 0; } void set1 (int l); void set2 (int l); }; void foo::set1 (int l) { s1 = l; } void foo::set2 (int l) { s2 = l; } foo BAR; void test () { BAR.set1 (1); set2 (2); // <<---- Compiler should issue warning here. } [2]: g++ -c -v bug.cc g++ version 1.27.0 /usr/local/lib/gcc-cpp+ -v -undef -D__GNU__ -D__GNUG__ -Dmc68000 -Dsun -Dunix bug.cc /tmp/cca16246.cpp GNU CPP version 1.27.0 /usr/local/lib/gcc-c++ /tmp/cca16246.cpp -quiet -dumpbase bug.cc -noreg -version -o /tmp/cca16246.s GNU C++ version 1.27.0 (68k, MIT syntax) compiled by GNU C version 1.27. as -mc68020 /tmp/cca16246.s -o bug.o [3]: exit No warning message is issued even though an obvious syntax error is presented.
zhao@wiener.usc.edu (11/08/88)
I apologize for the mistake in my previous post. After examming the assembly codes, I realized that it really shouldn't be called a serious bug though a warning message might be better.