Stop using unique_ptr, create some objects directly. libstdc++-v3/ChangeLog:
* testsuite/22_locale/codecvt/codecvt_unicode.cc: Simplify. * testsuite/22_locale/codecvt/codecvt_unicode.h: Simplify. * testsuite/22_locale/codecvt/codecvt_unicode_wchar_t.cc: Simplify. --- .../22_locale/codecvt/codecvt_unicode.cc | 18 ++++++++++-------- .../22_locale/codecvt/codecvt_unicode.h | 9 +-------- .../codecvt/codecvt_unicode_wchar_t.cc | 12 ++++++------ 3 files changed, 17 insertions(+), 22 deletions(-) diff --git a/libstdc++-v3/testsuite/22_locale/codecvt/codecvt_unicode.cc b/libstdc++-v3/testsuite/22_locale/codecvt/codecvt_unicode.cc index ae4b6c896..3d7393e4a 100644 --- a/libstdc++-v3/testsuite/22_locale/codecvt/codecvt_unicode.cc +++ b/libstdc++-v3/testsuite/22_locale/codecvt/codecvt_unicode.cc @@ -29,11 +29,12 @@ test_utf8_utf32_codecvts () using codecvt_c32 = codecvt<char32_t, char, mbstate_t>; auto loc_c = locale::classic (); VERIFY (has_facet<codecvt_c32> (loc_c)); + auto &cvt = use_facet<codecvt_c32> (loc_c); test_utf8_utf32_codecvts (cvt); - auto cvt_ptr = to_unique_ptr (new codecvt_utf8<char32_t> ()); - test_utf8_utf32_codecvts (*cvt_ptr); + auto cvt2 = codecvt_utf8<char32_t> (); + test_utf8_utf32_codecvts (cvt2); } void @@ -42,21 +43,22 @@ test_utf8_utf16_codecvts () using codecvt_c16 = codecvt<char16_t, char, mbstate_t>; auto loc_c = locale::classic (); VERIFY (has_facet<codecvt_c16> (loc_c)); + auto &cvt = use_facet<codecvt_c16> (loc_c); test_utf8_utf16_cvts (cvt); - auto cvt_ptr = to_unique_ptr (new codecvt_utf8_utf16<char16_t> ()); - test_utf8_utf16_cvts (*cvt_ptr); + auto cvt2 = codecvt_utf8_utf16<char16_t> (); + test_utf8_utf16_cvts (cvt2); - auto cvt_ptr2 = to_unique_ptr (new codecvt_utf8_utf16<char32_t> ()); - test_utf8_utf16_cvts (*cvt_ptr2); + auto cvt3 = codecvt_utf8_utf16<char32_t> (); + test_utf8_utf16_cvts (cvt3); } void test_utf8_ucs2_codecvts () { - auto cvt_ptr = to_unique_ptr (new codecvt_utf8<char16_t> ()); - test_utf8_ucs2_cvts (*cvt_ptr); + auto cvt = codecvt_utf8<char16_t> (); + test_utf8_ucs2_cvts (cvt); } int diff --git a/libstdc++-v3/testsuite/22_locale/codecvt/codecvt_unicode.h b/libstdc++-v3/testsuite/22_locale/codecvt/codecvt_unicode.h index 99d1a4684..fbdc7a35b 100644 --- a/libstdc++-v3/testsuite/22_locale/codecvt/codecvt_unicode.h +++ b/libstdc++-v3/testsuite/22_locale/codecvt/codecvt_unicode.h @@ -15,18 +15,11 @@ // with this library; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. +#include <algorithm> #include <locale> #include <string> -#include <memory> #include <testsuite_hooks.h> -template <typename T> -std::unique_ptr<T> -to_unique_ptr (T *ptr) -{ - return std::unique_ptr<T> (ptr); -} - struct test_offsets_ok { size_t in_size, out_size; diff --git a/libstdc++-v3/testsuite/22_locale/codecvt/codecvt_unicode_wchar_t.cc b/libstdc++-v3/testsuite/22_locale/codecvt/codecvt_unicode_wchar_t.cc index 169504939..f7a0a4fd8 100644 --- a/libstdc++-v3/testsuite/22_locale/codecvt/codecvt_unicode_wchar_t.cc +++ b/libstdc++-v3/testsuite/22_locale/codecvt/codecvt_unicode_wchar_t.cc @@ -27,8 +27,8 @@ void test_utf8_utf32_codecvts () { #if __SIZEOF_WCHAR_T__ == 4 - auto cvt_ptr = to_unique_ptr (new codecvt_utf8<wchar_t> ()); - test_utf8_utf32_codecvts (*cvt_ptr); + auto cvt = codecvt_utf8<wchar_t> (); + test_utf8_utf32_codecvts (cvt); #endif } @@ -36,8 +36,8 @@ void test_utf8_utf16_codecvts () { #if __SIZEOF_WCHAR_T__ >= 2 - auto cvt_ptr = to_unique_ptr (new codecvt_utf8_utf16<wchar_t> ()); - test_utf8_utf16_cvts (*cvt_ptr); + auto cvt = codecvt_utf8_utf16<wchar_t> (); + test_utf8_utf16_cvts (cvt); #endif } @@ -45,8 +45,8 @@ void test_utf8_ucs2_codecvts () { #if __SIZEOF_WCHAR_T__ == 2 - auto cvt_ptr = to_unique_ptr (new codecvt_utf8<wchar_t> ()); - test_utf8_ucs2_cvts (*cvt_ptr); + auto cvt = codecvt_utf8<wchar_t> (); + test_utf8_ucs2_cvts (cvt); #endif } -- 2.34.1