Add missing __throw_exception_again

Submitted by Andreas Schwab on March 9, 2012, 5:44 p.m.

Details

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

Commit Message

Andreas Schwab March 9, 2012, 5:44 p.m.
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.
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.
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

Patch hide | download patch | download mbox

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));