OSDN Git Service

* config/locale/gnu/monetary_members.cc
authorschwab <schwab@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 9 Mar 2012 19:51:16 +0000 (19:51 +0000)
committerschwab <schwab@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 9 Mar 2012 19:51:16 +0000 (19:51 +0000)
(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/branches/gcc-4_7-branch@185151 138bc75d-0d04-0410-961f-82ee72b054a4

libstdc++-v3/ChangeLog
libstdc++-v3/config/locale/gnu/monetary_members.cc
libstdc++-v3/testsuite/22_locale/locale/cons/12352.cc

index d49c6a4..6a1ae00 100644 (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.
index 214c4af..d1d9939 100644 (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));
index f56bf67..0449bf3 100644 (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&)
            {