Hello, I have compiled gcc 4.7.1 from sources on SuSE 11 Enterprise SP1 and the following application calls terminate() instead of catching the exception, but it works as expected on the same platform with gcc 4.5: cpptest.cpp: ------------------------------------------ int main() { try { throw 1; } catch (int) { // empty } return 0; } ------------------------------------------ $ g++-4.7.1 -o cpptest cpptest.cpp $ ./cpptest terminate called after throwing an instance of 'int' Aborted (core dumped) $ g++-4.5 -o cpptest cpptest.cpp $ ./cpptest $ Platform information: $ uname -a Linux epcau-srv-dev 2.6.33.7-rt29-0.5-rt #1 SMP PREEMPT RT 2010-08-25 19:40:23 +0200 x86_64 x86_64 x86_64 GNU/Linux $ g++-4.7.1 -v Reading specs from /opt/epoch/lib64/gcc/x86_64-unknown-linux-gnu/4.7.1/specs COLLECT_GCC=g++-4.7.1 COLLECT_LTO_WRAPPER=/opt/epoch/lib64/gcc/x86_64-unknown-linux-gnu/4.7.1/lto-wrapper Target: x86_64-unknown-linux-gnu Configured with: ../gcc-4.7.1/configure --prefix=/opt/epoch --libdir=/opt/epoch/lib64 --libexecdir=/opt/epoch/lib64 --with-slibdir=/opt/epoch/lib64/gcc/x86_64-suse-linux/4.7.1/libgcc/lib64 --with-gxx-include-dir=/opt/epoch/include/c++/4.7.1 --program-suffix=-4.7.1 --enable-version-specific-runtime-libs --enable-languages=c++ Thread model: posix gcc version 4.7.1 (GCC) $ cat /opt/epoch/lib64/gcc/x86_64-unknown-linux-gnu/4.7.1/specs *link: + %{!m32:-rpath=/opt/epoch/lib64/gcc/x86_64-suse-linux/4.7.1} %{!m32:-rpath=/opt/epoch/lib64/gcc/x86_64-suse-linux/4.7.1/libgcc/lib64} %{m32:-rpath=/opt/epoch/lib64/gcc/x86_64-suse-linux/4.7.1/32} %{m32:-rpath=/opt/epoch/lib64/gcc/x86_64-suse-linux/4.7.1/libgcc/lib} I am using binutils shipped with my SuSE distribution, but I also tried using the latest binutils-2.22 that I compiled and the result is the same. I have also tried using gold instead of ld and made no difference. Am I doing something wrong? What else should I try? Regards, Zoltan