summaryrefslogtreecommitdiff
path: root/libstdc++-v3/libsupc++
diff options
context:
space:
mode:
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2004-02-08 18:01:23 +0000
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2004-02-08 18:01:23 +0000
commit2473c92d7c783befb05359b109b937aba56061b7 (patch)
treecc7b028fb0b5dddd6aa536778874ae7ce1806b33 /libstdc++-v3/libsupc++
parent42b360804daea7ce5111ae1e68ed8e31afa3b2cc (diff)
downloadgcc-2473c92d7c783befb05359b109b937aba56061b7.tar.gz
PR libstdc++/14026
* libsupc++/eh_catch.cc (__cxa_begin_catch): Don't adjust uncaughtExceptions during nested catch rethrow. * testsuite/18_support/14026.cc: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@77492 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3/libsupc++')
-rw-r--r--libstdc++-v3/libsupc++/eh_catch.cc8
1 files changed, 5 insertions, 3 deletions
diff --git a/libstdc++-v3/libsupc++/eh_catch.cc b/libstdc++-v3/libsupc++/eh_catch.cc
index f8b7137e57e..0e186605f09 100644
--- a/libstdc++-v3/libsupc++/eh_catch.cc
+++ b/libstdc++-v3/libsupc++/eh_catch.cc
@@ -1,5 +1,5 @@
// -*- C++ -*- Exception handling routines for catching.
-// Copyright (C) 2001, 2003 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2003, 2004 Free Software Foundation, Inc.
//
// This file is part of GCC.
//
@@ -65,10 +65,12 @@ __cxa_begin_catch (void *exc_obj_in)
// This exception was rethrown from an immediately enclosing region.
count = -count + 1;
else
- count += 1;
+ {
+ count += 1;
+ globals->uncaughtExceptions -= 1;
+ }
header->handlerCount = count;
- globals->uncaughtExceptions -= 1;
if (header != prev)
{
header->nextException = prev;