Your message dated Sat, 18 Jun 2016 00:52:54 +0200
with message-id <[email protected]>
and subject line closing bugs reported against ancient GCC versions
has caused the Debian Bug report #511200,
regarding g++-4.3: doesn't work destructor of local object
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
511200: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=511200
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: g++-4.3
Version: 4.3.2-1.1
Severity: normal

In the example below destructor of local object doesn't work (there is no
output from it). However, if the call of f() is wrapped into

  try {
    f();
  }
  catch (...) {
    throw;
  }

then the destructor produces expected output. Here is the result of running
the program without catch(...):

$ g++ -o test -DNO_TRY -Wall -Wextra -pedantic test.cc
$ ./test
constructing MyTest@0xff7fd0ff
terminate called after throwing an instance of 'MyError'
Aborted

And now with handler:

$ g++ -o test -Wall -Wextra -pedantic test.cc
$ ./test
constructing MyTest@0xff93ca1f
destructing MyTest@0xff93ca1f
terminate called after throwing an instance of 'MyError'
Aborted

The program (test.cc):

#include <iostream>
using namespace std;

class MyTest {
public:
  MyTest() { cout << "constructing MyTest@" << this << '\n'; cout.flush(); }
  ~MyTest() { cout << "destructing MyTest@" << this << '\n'; cout.flush(); }
};

class MyError {};

void f()
{
  MyTest m;
  throw MyError();
}

int main()
{
#ifdef NO_TRY
  f();
#else
  try {
    f();
  }
  catch (...) {
    throw;
  }
#endif
}

-- System Information:
Debian Release: 5.0
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'stable'), (1, 'experimental')
Architecture: i386 (x86_64)

Kernel: Linux 2.6.26-1-amd64 (SMP w/2 CPU cores)
Locale: LANG=ru_RU.UTF-8, LC_CTYPE=ru_RU.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages g++-4.3 depends on:
ii  gcc-4.3                   4.3.2-1.1      The GNU C compiler
ii  gcc-4.3-base              4.3.2-1.1      The GNU Compiler Collection (base 
ii  libc6                     2.7-18         GNU C Library: Shared libraries
ii  libgmp3c2                 2:4.2.2+dfsg-3 Multiprecision arithmetic library
ii  libmpfr1ldbl              2.3.2.dfsg.1-1 multiple precision floating-point 
ii  libstdc++6-4.3-dev        4.3.2-1.1      The GNU Standard C++ Library v3 (d

g++-4.3 recommends no packages.

Versions of packages g++-4.3 suggests:
pn  g++-4.3-multilib             <none>      (no description available)
ii  gcc-4.3-doc                  4.3.2.nf1-1 documentation for the GNU compiler
pn  libstdc++6-4.3-dbg           <none>      (no description available)

-- no debconf information

-- 
Dmitri Paduchikh



--- End Message ---
--- Begin Message ---
This bug has been reported against an ancient version of
gpc (4.1), gcc/g++/gfortran (4.3), or gcj/gij/gobjc (4.4), that was last
released with Debian 6.0 (squeeze). But even squeeze-lts has now reached
end-of-life and is no longer supported.
The bug is assumed to be fixed (or no longer relevant) in newer GCC
releases and therefore I'm closing this report now. If the problem is
still reproducible in the currently supported versions (gcc-5, gcc-6 or
corresponding g++/gcj), feel free to provide more information, reopen
and reassign this bug report.


Andreas

--- End Message ---

Reply via email to