PR libstdc++/20091
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 22 Feb 2005 23:17:14 +0000 (23:17 +0000)
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 22 Feb 2005 23:17:14 +0000 (23:17 +0000)
        * libsupc++/eh_catch.cc (__cxa_begin_catch): Don't special case
        decrement of uncaughtExceptions for rethrow.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@95419 138bc75d-0d04-0410-961f-82ee72b054a4

libstdc++-v3/ChangeLog
libstdc++-v3/libsupc++/eh_catch.cc

index c706551..33b228e 100644 (file)
@@ -1,3 +1,9 @@
+2005-02-22  Richard Henderson  <rth@redhat.com>
+
+       PR libstdc++/20091
+       * libsupc++/eh_catch.cc (__cxa_begin_catch): Don't special case
+       decrement of uncaughtExceptions for rethrow.
+
 2005-02-22  Paolo Carlini  <pcarlini@suse.de>
 
        * include/tr1/functional: Fix License to GPL with exception.
index 88060d9..ba4b7d7 100644 (file)
@@ -70,15 +70,14 @@ __cxxabiv1::__cxa_begin_catch (void *exc_obj_in) throw()
     }
 
   int count = header->handlerCount;
+  // Count is less than zero if this exception was rethrown from an
+  // immediately enclosing region.
   if (count < 0)
-    // This exception was rethrown from an immediately enclosing region.
     count = -count + 1;
   else
-    {
-      count += 1;
-      globals->uncaughtExceptions -= 1;
-    }
+    count += 1;
   header->handlerCount = count;
+  globals->uncaughtExceptions -= 1;
 
   if (header != prev)
     {