This makes the 22_locale/locale/cons/12352.cc test fail everywhere. Andreas.
2012-03-09 Andreas Schwab <sch...@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/ * testsuite/22_locale/locale/cons/12352.cc: Also test en_US locale. --- libstdc++-v3/config/locale/gnu/monetary_members.cc | 4 +++- .../testsuite/22_locale/locale/cons/12352.cc | 4 ++++ 2 files changed, 7 insertions(+), 1 deletion(-) 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)); diff --git a/libstdc++-v3/testsuite/22_locale/locale/cons/12352.cc b/libstdc++-v3/testsuite/22_locale/locale/cons/12352.cc index f56bf67..0449bf3 100644 --- a/libstdc++-v3/testsuite/22_locale/locale/cons/12352.cc +++ b/libstdc++-v3/testsuite/22_locale/locale/cons/12352.cc @@ -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&) { -- 1.7.9.3 -- Andreas Schwab, sch...@linux-m68k.org GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 "And now for something completely different."