* config/locale/gnu/monetary_members.cc

(moneypunct<char,true>::_M_initialize_moneypunct): Throw caught
exception again.
(moneypunct<char,false>::_M_initialize_moneypunct): Likewise.
* testsuite/22_locale/locale/cons/12352.cc: Also test en_US
locale.

From-SVN: r185151
This commit is contained in:
Andreas Schwab 2012-03-09 19:51:16 +00:00 committed by Andreas Schwab
parent 844462f987
commit 21e083eca8
3 changed files with 16 additions and 1 deletions

View File

@ -1,3 +1,12 @@
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.
* testsuite/22_locale/locale/cons/12352.cc: Also test en_US
locale.
2012-03-02 Benjamin Kosnik <bkoz@redhat.com>
* include/c_global/cstdio: Remove extraneous extern.

View File

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

View File

@ -1,4 +1,5 @@
// { dg-require-namedlocale "" }
// { dg-require-namedlocale "en_US" }
// Copyright (C) 2003, 2005, 2009 Free Software Foundation
//
@ -105,6 +106,9 @@ void test01(int iters)
std::locale loc1 = std::locale("");
std::locale loc2(loc1, std::locale::classic(),
std::locale::numeric);
std::locale loc3 = std::locale("en_US");
std::locale loc4(loc3, std::locale::classic(),
std::locale::numeric);
}
catch (std::exception&)
{