Patchwork Add missing __throw_exception_again

login
register
mail settings
Submitter Andreas Schwab
Date March 9, 2012, 5:44 p.m.
Message ID <m2fwdhu0sg.fsf@igel.home>
Download mbox | patch
Permalink /patch/145743/
State New
Headers show

Comments

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

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