summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorschwab <schwab@138bc75d-0d04-0410-961f-82ee72b054a4>2012-03-09 19:48:55 +0000
committerschwab <schwab@138bc75d-0d04-0410-961f-82ee72b054a4>2012-03-09 19:48:55 +0000
commit22af978f833fc390f31193e73d3e095886c10e54 (patch)
tree498d5ea386cabfb5810363677d87d7660df8b97d
parentf9c681635d1850543f547fdbb6efd5a010aca015 (diff)
downloadppe42-gcc-22af978f833fc390f31193e73d3e095886c10e54.tar.gz
ppe42-gcc-22af978f833fc390f31193e73d3e095886c10e54.zip
* 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@185149 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--libstdc++-v3/ChangeLog9
-rw-r--r--libstdc++-v3/config/locale/gnu/monetary_members.cc4
-rw-r--r--libstdc++-v3/testsuite/22_locale/locale/cons/12352.cc4
3 files changed, 16 insertions, 1 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index d43172a75ba..88156764a82 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -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-09 Paolo Carlini <paolo.carlini@oracle.com>
* include/debug/formatter.h (enum _Debug_msg_id): Add
diff --git a/libstdc++-v3/config/locale/gnu/monetary_members.cc b/libstdc++-v3/config/locale/gnu/monetary_members.cc
index 214c4af7d76..d1d9939764d 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 f56bf678658..0449bf30e4b 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&)
{
OpenPOWER on IntegriCloud