From fd6162edabd7190d9e8d4c9eee3bea1eb59d2778 Mon Sep 17 00:00:00 2001 From: bkoz Date: Thu, 13 Dec 2001 11:12:56 +0000 Subject: [PATCH] 2001-12-13 Benjamin Kosnik libstdc++/3679 * src/locale.cc (locale::locale(const char*)): Deal with locales named "". * testsuite/22_locale/ctor_copy_dtor.cc (test01): Modify. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47968 138bc75d-0d04-0410-961f-82ee72b054a4 --- libstdc++-v3/ChangeLog | 7 +++++++ libstdc++-v3/src/locale.cc | 2 ++ libstdc++-v3/testsuite/22_locale/ctor_copy_dtor.cc | 2 +- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 25078d4f101a..297034bd1e23 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,10 @@ +2001-12-13 Benjamin Kosnik + + libstdc++/3679 + * src/locale.cc (locale::locale(const char*)): Deal with locales + named "". + * testsuite/22_locale/ctor_copy_dtor.cc (test01): Modify. + 2001-12-12 Paolo Carlini * include/ext/ropeimpl.h (rope::_S_leaf_concat_char_iter, diff --git a/libstdc++-v3/src/locale.cc b/libstdc++-v3/src/locale.cc index d827a2564366..0e899c1d9b33 100644 --- a/libstdc++-v3/src/locale.cc +++ b/libstdc++-v3/src/locale.cc @@ -204,6 +204,8 @@ namespace std _S_initialize(); if (strcmp(__s, "C") == 0 || strcmp(__s, "POSIX") == 0) (_M_impl = _S_classic)->_M_add_reference(); + else if (strcmp(__s, "") == 0) + _M_impl = new _Impl(setlocale(LC_ALL, __s), 1); else _M_impl = new _Impl(__s, 1); } diff --git a/libstdc++-v3/testsuite/22_locale/ctor_copy_dtor.cc b/libstdc++-v3/testsuite/22_locale/ctor_copy_dtor.cc index d5d7b843c20a..bbe3b147ba5c 100644 --- a/libstdc++-v3/testsuite/22_locale/ctor_copy_dtor.cc +++ b/libstdc++-v3/testsuite/22_locale/ctor_copy_dtor.cc @@ -126,7 +126,7 @@ void test01() locale loc07(""); VERIFY (loc07 != loc01); VERIFY (loc07 != loc02); - VERIFY (loc07.name() == ""); + VERIFY (loc07.name() != ""); try { locale loc08(static_cast(NULL)); } catch(runtime_error& obj) -- 2.47.2