The attached small program leaks 425,408 bytes according to valgrind. The leak does not occur when compiling with gcc 4.4 or any other version of gcc.
Using built-in specs. COLLECT_GCC=g++-mp-4.5 COLLECT_LTO_WRAPPER=/opt/local/libexec/gcc/x86_64-apple-darwin10/4.5.0/lto-wrapper Target: x86_64-apple-darwin10 Configured with: ../gcc-4.5-20100211/configure --prefix=/opt/local --build=x86_64-apple-darwin10 --enable-languages=c,c++,objc,obj-c++ --libdir=/opt/local/lib/gcc45 --includedir=/opt/local/include/gcc45 --infodir=/opt/local/share/info --mandir=/opt/local/share/man --with-local-prefix=/opt/local --with-system-zlib --disable-nls --program-suffix=-mp-4.5 --with-gxx-include-dir=/opt/local/include/gcc45/c++/ --with-gmp=/opt/local --with-mpfr=/opt/local --with-mpc==/opt/local --enable-stage1-checking Thread model: posix gcc version 4.5.0 20100211 (experimental) (GCC) -- Summary: rethrowing leaks memory like a sieve Product: gcc Version: 4.5.0 Status: UNCONFIRMED Severity: major Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: dan dot colascione at gmail dot com GCC host triplet: i386-apple-darwin10.2.0 GCC target triplet: i386-apple-darwin10.2.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43099