This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
c++/7466: gcc does not create a destructor call for a temporary
- From: norbert at spice dot gia dot rwth-aachen dot de
- To: gcc-gnats at gcc dot gnu dot org
- Date: 1 Aug 2002 16:54:23 -0000
- Subject: c++/7466: gcc does not create a destructor call for a temporary
- Reply-to: norbert at spice dot gia dot rwth-aachen dot de
>Number: 7466
>Category: c++
>Synopsis: gcc does not create a destructor call for a temporary
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: unassigned
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Thu Aug 01 09:56:00 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator: Norbert Berzen
>Release: gcc version 3.1
>Organization:
>Environment:
Reading specs from /usr/lib/gcc-lib/i686-pc-linux-gnu/3.1/specs
Configured with: /WINEXPORT/DEVEL/gcc-x.y.z/gcc-3.1/configure --prefix=/usr
Thread model: single
gcc version 3.1
>Description:
gcc does not create a destructor call for a temporary
object which has a non-trivial destructor.
When xxx.cpp is compiled using "g++ -o xxx xxx.cpp"
then only C() is called, and ~C() is not called at all.
But when xxx.cpp is compiled by "g++ -O3 -o xxx xxx.cpp"
then C() gets called once as well as ~C() gets called
once.
>How-To-Repeat:
Compile xxx.cpp by "g++ -o xxx xxx.cpp" and run the program.
Compile it by "g++ -O3 -o xxx xxx.cpp" and run the program.
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="xxx.cpp"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="xxx.cpp"
LyoKICogRmlsZTogeHh4LmNwcAogKi8KCmV4dGVybiAiQyIgaW50IHByaW50ZiAoLi4uKTsKCnN0
cnVjdCBDIHsKICBDICgpIHsgcHJpbnRmICgiQyAoKVxuIik7IH0KICB+QyAoKSB7IHByaW50ZiAo
In5DICgpXG4iKTsgfQp9OwoKc3RhdGljIGNvbnN0IEMgZiAodm9pZCkKewogIHJldHVybiBDKCk7
Cn0KCnN0YXRpYyB2b2lkIGcgKEMgaW5fYykKewogIC8qIGVtcHR5ICovCn0KCmludAptYWluICgp
CnsKICBnIChmICgpKTsKICByZXR1cm4gMDsKfQoKCi8qCiAqIFRoaXMgcHJvZHVjZXMgd3Jvbmcg
Y29kZTogICAiZysrIC1vIHh4eCB4eHguY3BwIgogKgogKiBUaGF0IHByb2R1Y2VzIGNvcnJlY3Qg
Y29kZTogImcrKyAtTzMgLW8geHh4IHh4eC5jcHAiCiAqLwo=