diff mbox

Add missing __throw_exception_again

Message ID m2fwdhu0sg.fsf@igel.home
State New
Headers show

Commit Message

Andreas Schwab March 9, 2012, 5:44 p.m. UTC
This prevents the 22_locale/locale/cons/12352.cc test from crashing.
Tested on m68k-linux.

Andreas.

2012-03-09  Andreas Schwab  <schwab@linux-m68k.org>

	* config/locale/gnu/monetary_members.cc
	(moneypunct<char,true>::_M_initialize_moneypunct): Throw caught
	exception again.
	(moneypunct<char,false>::_M_initialize_moneypunct): Likewise.
---
 libstdc++-v3/config/locale/gnu/monetary_members.cc |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

Paolo Carlini March 9, 2012, 6:14 p.m. UTC | #1
HI,
> This prevents the 22_locale/locale/cons/12352.cc test from crashing.
> Tested on m68k-linux.
Depending on the system, doesn't crash that easily, but indeed the issue 
is real and the patch is right, we want it in 4.7.1 (if not 4.7.0?) and 
mainline.

Thanks,
Paolo.
Jakub Jelinek March 9, 2012, 6:57 p.m. UTC | #2
On Fri, Mar 09, 2012 at 07:14:52PM +0100, Paolo Carlini wrote:
> >This prevents the 22_locale/locale/cons/12352.cc test from crashing.
> >Tested on m68k-linux.
> Depending on the system, doesn't crash that easily, but indeed the
> issue is real and the patch is right, we want it in 4.7.1 (if not
> 4.7.0?) and mainline.

Ok for 4.7.0.

	Jakub
diff mbox

Patch

diff --git a/libstdc++-v3/config/locale/gnu/monetary_members.cc b/libstdc++-v3/config/locale/gnu/monetary_members.cc
index 214c4af..d1d9939 100644
--- a/libstdc++-v3/config/locale/gnu/monetary_members.cc
+++ b/libstdc++-v3/config/locale/gnu/monetary_members.cc
@@ -1,6 +1,6 @@ 
 // std::moneypunct implementation details, GNU version -*- C++ -*-
 
-// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2012
 // Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
@@ -339,6 +339,7 @@  _GLIBCXX_BEGIN_NAMESPACE_VERSION
 	      delete [] __group;
 	      delete [] __ps;
 	      delete [] __ns;
+	      __throw_exception_again;
 	    }
 
 	  char __pprecedes = *(__nl_langinfo_l(__INT_P_CS_PRECEDES, __cloc));
@@ -489,6 +490,7 @@  _GLIBCXX_BEGIN_NAMESPACE_VERSION
 	      delete [] __group;
 	      delete [] __ps;
 	      delete [] __ns;
+	      __throw_exception_again;
 	    }
 
 	  char __pprecedes = *(__nl_langinfo_l(__P_CS_PRECEDES, __cloc));