2.95.2 namespace bug persists

Raymond Nijssen rxtn@gte.net
Mon Jan 3 23:00:00 GMT 2000


Dear gcc maintainers,

The following bug that crept in sometime after 2.8.1 has existed in all
2.95  versions so far:


41[linux1:]~/src/test> cat namescope.cxx

class A {
public:
        class B;
        class C;
};

class A::B {
};

class A::C {
        class D;
};

class A::C::D {
public:
        B* foo();         //   gcc-2.95.*  fails to see that A::B  is
declared in this context
};



42[linux1:]~/src/test> /usr/local/gcc-2.95.2/bin/g++ -v namescope.cxx

Reading specs from
/usr/local/gcc-2.95.2/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/specs
gcc version 2.95.2 19991024 (release)
 /usr/local/gcc-2.95.2/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/cpp
-lang-c++ -v -D__GNUC__=2 -D__GNUG__=2 -D__GNUC_MINOR__=95 -D__cplusplus
-D__ELF__ -Dunix -D__i386__ -Dlinux -D__ELF__ -D__unix__ -D__i386__
-D__linux__ -D__unix -D__linux -Asystem(posix) -D__EXCEPTIONS
-Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ -Di686
-Dpentiumpro -D__i686 -D__i686__ -D__pentiumpro -D__pentiumpro__
namescope.cxx /tmp/cc84JpBr.ii
GNU CPP version 2.95.2 19991024 (release) (i386 Linux/ELF)
#include "..." search starts here:
#include <...> search starts here:
 /usr/local/gcc-2.95.2/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/../../../../include/g++-3

 /usr/local/include
 /usr/local/gcc-2.95.2/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/../../../../i686-pc-linux-gnu/include

 /usr/local/gcc-2.95.2/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/include
 /usr/include
End of search list.
The following default directories have been omitted from the search
path:
End of omitted list.
 /usr/local/gcc-2.95.2/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/cc1plus
/tmp/cc84JpBr.ii -quiet -dumpbase namescope.cc -version -o
/tmp/ccwNSPZI.s
GNU C++ version 2.95.2 19991024 (release) (i686-pc-linux-gnu) compiled
by GNU C version 2.95.2 19991024 (release).
namescope.cxx:16: syntax error before `*'
43[linux1:]~/src/test>





-Raymond



More information about the Gcc-bugs mailing list