This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
3.4.0 vs 3.3.3
- From: Shelly Adhikari <shelly at interrasystems dot com>
- To: gcc at gcc dot gnu dot org
- Date: Tue, 20 Apr 2004 13:39:00 -0700
- Subject: 3.4.0 vs 3.3.3
Hello Guys,
Should I file a bug against gcc 3.4.0, the following compiles fine with
gcc 3.3.3 but gives errors with gcc 3.4.0.
---------------------------------------------------------------------------------------------------------------------------
template <class A> class C;
template <class A> class B {
public:
B() { }
~B() { }
protected:
int abc;
void g() {}
friend void C<A>::f(B<A>* p);
};
template <class A> class C : public B<A> {
public:
void f(B<A>* p) {
p->g();
int m = p->abc;
}
};
int main() {
B<int>* y = new B<int>();
C<int> x;
x.f(y);
}
---------------------------------------------------------------------------------------------------------------------------
shelly@redhat[180] /usr/local/gcc3.3.3/bin/g++ -v b.cxx
Reading specs from
/usr/local/gcc3.3.3/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/specs
Configured with: ../gcc-3.3.3/configure --prefix=/usr/local/gcc3.3.3
--enable-languages=c,c++ --disable-shared
Thread model: posix
gcc version 3.3.3
/usr/local/gcc3.3.3/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/cc1plus -quiet
-v -D__GNUC__=3 -D__GNUC_MINOR__=3 -D__GNUC_PATCHLEVEL__=3 -D_GNU_SOURCE
b.cxx -D__GNUG__=3 -quiet -dumpbase b.cxx -auxbase b -version -o
/tmp/ccLfjLh3.s
GNU C++ version 3.3.3 (i686-pc-linux-gnu)
compiled by GNU C version 3.3.3.
GGC heuristics: --param ggc-min-expand=98 --param ggc-min-heapsize=128849
ignoring nonexistent directory
"/usr/local/gcc3.3.3/i686-pc-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
/usr/local/gcc3.3.3/include/c++/3.3.3
/usr/local/gcc3.3.3/include/c++/3.3.3/i686-pc-linux-gnu
/usr/local/gcc3.3.3/include/c++/3.3.3/backward
/usr/local/include
/usr/local/gcc3.3.3/include
/usr/local/gcc3.3.3/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include
/usr/include
End of search list.
as --traditional-format -V -Qy -o /tmp/ccoasF3Y.o /tmp/ccLfjLh3.s
GNU assembler version 2.10.91 (i386-redhat-linux) using BFD version
2.10.91.0.2
/usr/local/gcc3.3.3/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/collect2 -m
elf_i386 -dynamic-linker /lib/ld-linux.so.2 /usr/lib/crt1.o
/usr/lib/crti.o
/usr/local/gcc3.3.3/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/crtbegin.o
-L/usr/local/gcc3.3.3/lib/gcc-lib/i686-pc-linux-gnu/3.3.3
-L/usr/local/gcc3.3.3/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/../../..
/tmp/ccoasF3Y.o -lstdc++ -lm -lgcc -lc -lgcc
/usr/local/gcc3.3.3/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/crtend.o
/usr/lib/crtn.o
---------------------------------------------------------------------------------------------------------------------------
shelly@redhat[181] /usr/local/gcc3.4.0/bin/g++ -v b.cxx
Reading specs from /usr/local/gcc3.4.0/lib/gcc/i686-pc-linux-gnu/3.4.0/specs
Configured with: ../gcc-3.4.0/configure --prefix=/usr/local/gcc3.4.0
--enable-languages=c,c++ --disable-shared
Thread model: posix
gcc version 3.4.0
/usr/local/gcc3.4.0/libexec/gcc/i686-pc-linux-gnu/3.4.0/cc1plus -quiet
-v -D_GNU_SOURCE b.cxx -quiet -dumpbase b.cxx -mtune=pentiumpro -auxbase
b -version -o /tmp/ccsgk5Ye.s
ignoring nonexistent directory
"/usr/local/gcc3.4.0/lib/gcc/i686-pc-linux-gnu/3.4.0/../../../../i686-pc-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
/usr/local/gcc3.4.0/lib/gcc/i686-pc-linux-gnu/3.4.0/../../../../include/c++/3.4.0
/usr/local/gcc3.4.0/lib/gcc/i686-pc-linux-gnu/3.4.0/../../../../include/c++/3.4.0/i686-pc-linux-gnu
/usr/local/gcc3.4.0/lib/gcc/i686-pc-linux-gnu/3.4.0/../../../../include/c++/3.4.0/backward
/usr/local/include
/usr/local/gcc3.4.0/include
/usr/local/gcc3.4.0/lib/gcc/i686-pc-linux-gnu/3.4.0/include
/usr/include
End of search list.
GNU C++ version 3.4.0 (i686-pc-linux-gnu)
compiled by GNU C version 3.4.0.
GGC heuristics: --param ggc-min-expand=98 --param ggc-min-heapsize=128849
b.cxx: In instantiation of `C<int>':
b.cxx:9: instantiated from `B<int>'
b.cxx:23: instantiated from here
b.cxx:14: error: invalid use of undefined type `class B<int>'
b.cxx:4: error: declaration of `class B<int>'