[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
g++ 2.95.1: Destructor not called properly
From: |
Niel Clausen |
Subject: |
g++ 2.95.1: Destructor not called properly |
Date: |
Thu, 24 May 2001 13:03:25 +0100 |
The following (legal?) code fails to call ~a() on a couple of gcc variants:
#include <stdio.h>
// define FAIL to cause incorrect code generation for ~b()
// #define FAIL
#ifdef FAIL
extern "C"
{
#endif
class a
{
public:
a() {
printf("a::a()\n");
}
virtual ~a() {
printf("a::~a()\n");
}
};
class b : public a
{
public:
b() {
printf("b::b()\n");
}
~b() {
printf("b::~b()\n");
}
};
#ifdef FAIL
}
#endif
main()
{
a *ptr = new b;
delete ptr;
}
~/> g++ -v test.cpp -DFAIL
Reading specs from /usr/local/lib/gcc-lib/sparc-sun-solaris2.6/2.95.1/specs
gcc version 2.95.1 19990816 (release)
/usr/local/lib/gcc-lib/sparc-sun-solaris2.6/2.95.1/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__sp
arc -D__sun -D__unix -Asystem(unix) -Asystem(svr4) -D__EXCEPTIONS -D__GCC_NE
W_VARARGS__ -Acpu(sparc) -Amachine(sparc) -DFAIL test.cpp
/var/tmp/ccuXbJSX.ii
GNU CPP version 2.95.1 19990816 (release) (sparc)
#include "..." search starts here:
#include <...> search starts here:
/usr/local/lib/gcc-lib/sparc-sun-solaris2.6/2.95.1/../../../../include/g++-3
/usr/local/include
/usr/local/lib/gcc-lib/sparc-sun-solaris2.6/2.95.1/../../../../sparc-sun-sol
aris2.6/include
/usr/local/lib/gcc-lib/sparc-sun-solaris2.6/2.95.1/include
/usr/include
End of search list.
The following default directories have been omitted from the search path:
End of omitted list.
/usr/local/lib/gcc-lib/sparc-sun-solaris2.6/2.95.1/cc1plus
/var/tmp/ccuXbJSX.ii -quiet -dumpbase test.cc -version -o
/var/tmp/ccUZZ5dO.s
GNU C++ version 2.95.1 19990816 (release) (sparc-sun-solaris2.6) compiled by
GNU C version 2.95.1 19990816 (release).
/usr/local/sparc-sun-solaris2.6/bin/as -V -Qy -s -o /var/tmp/cco2EsxK.o
/var/tmp/ccUZZ5dO.s
GNU assembler version 2.9.4 (sparc-sun-solaris2.6) using BFD version 2.9.4
/usr/local/lib/gcc-lib/sparc-sun-solaris2.6/2.95.1/collect2 -V -Y
P,/usr/ccs/lib:/usr/lib -Qy
/usr/local/lib/gcc-lib/sparc-sun-solaris2.6/2.95.1/crt1.o
/usr/local/lib/gcc-lib/sparc-sun-solaris2.6/2.95.1/crti.o
/usr/ccs/lib/values-Xa.o
/usr/local/lib/gcc-lib/sparc-sun-solaris2.6/2.95.1/crtbegin.o -L/usr/local/l
ib/gcc-lib/sparc-sun-solaris2.6/2.95.1 -L/usr/local/sparc-sun-solaris2.6/lib
-L/usr/ccs/bin -L/usr/ccs/lib -L/usr/local/lib
/var/tmp/cco2EsxK.o -lstdc++ -lm -lgcc -lc -lgcc
/usr/local/lib/gcc-lib/sparc-sun-solaris2.6/2.95.1/crtend.o
/usr/local/lib/gcc-lib/sparc-sun-solaris2.6/2.95.1/crtn.o
GNU ld version 2.9.4 (with BFD 2.9.4)
Supported emulations:
elf32_sparc
~/> a.out
a::a()
b::b()
b::~b()
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- g++ 2.95.1: Destructor not called properly,
Niel Clausen <=
- Prev by Date:
INWS - science, culture, nature, love, people, countries, tech...
- Next by Date:
Serious offer. This is not ordinary offer as many in Internet. The New Way In Your Life Here!!!
- Previous by thread:
INWS - science, culture, nature, love, people, countries, tech...
- Next by thread:
Serious offer. This is not ordinary offer as many in Internet. The New Way In Your Life Here!!!
- Index(es):