philnik updated this revision to Diff 435230. philnik added a comment. Fix Patch
Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D127313/new/ https://reviews.llvm.org/D127313 Files: libcxx/docs/ReleaseNotes.rst libcxx/docs/Status/Cxx17Papers.csv libcxx/include/codecvt libcxx/include/locale libcxx/src/locale.cpp libcxx/test/libcxx/localization/locales/locale.convenience/conversions/conversions.string/ctor_move.pass.cpp libcxx/test/std/localization/locale.stdcvt/codecvt_mode.pass.cpp libcxx/test/std/localization/locale.stdcvt/codecvt_utf16.pass.cpp libcxx/test/std/localization/locale.stdcvt/codecvt_utf16_always_noconv.pass.cpp libcxx/test/std/localization/locale.stdcvt/codecvt_utf16_encoding.pass.cpp libcxx/test/std/localization/locale.stdcvt/codecvt_utf16_in.pass.cpp libcxx/test/std/localization/locale.stdcvt/codecvt_utf16_length.pass.cpp libcxx/test/std/localization/locale.stdcvt/codecvt_utf16_max_length.pass.cpp libcxx/test/std/localization/locale.stdcvt/codecvt_utf16_out.pass.cpp libcxx/test/std/localization/locale.stdcvt/codecvt_utf16_unshift.pass.cpp libcxx/test/std/localization/locale.stdcvt/codecvt_utf8.pass.cpp libcxx/test/std/localization/locale.stdcvt/codecvt_utf8_always_noconv.pass.cpp libcxx/test/std/localization/locale.stdcvt/codecvt_utf8_encoding.pass.cpp libcxx/test/std/localization/locale.stdcvt/codecvt_utf8_in.pass.cpp libcxx/test/std/localization/locale.stdcvt/codecvt_utf8_length.pass.cpp libcxx/test/std/localization/locale.stdcvt/codecvt_utf8_max_length.pass.cpp libcxx/test/std/localization/locale.stdcvt/codecvt_utf8_out.pass.cpp libcxx/test/std/localization/locale.stdcvt/codecvt_utf8_unshift.pass.cpp libcxx/test/std/localization/locale.stdcvt/codecvt_utf8_utf16_always_noconv.pass.cpp libcxx/test/std/localization/locale.stdcvt/codecvt_utf8_utf16_encoding.pass.cpp libcxx/test/std/localization/locale.stdcvt/codecvt_utf8_utf16_in.pass.cpp libcxx/test/std/localization/locale.stdcvt/codecvt_utf8_utf16_length.pass.cpp libcxx/test/std/localization/locale.stdcvt/codecvt_utf8_utf16_max_length.pass.cpp libcxx/test/std/localization/locale.stdcvt/codecvt_utf8_utf16_out.pass.cpp libcxx/test/std/localization/locale.stdcvt/codecvt_utf8_utf16_unshift.pass.cpp libcxx/test/std/localization/locale.stdcvt/depr.verify.cpp libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.buffer/ctor.pass.cpp libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.buffer/depr.verify.cpp libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.buffer/overflow.pass.cpp libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.buffer/pbackfail.pass.cpp libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.buffer/rdbuf.pass.cpp libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.buffer/seekoff.pass.cpp libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.buffer/state.pass.cpp libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.buffer/test.pass.cpp libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.buffer/underflow.pass.cpp libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.string/converted.pass.cpp libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.string/ctor_codecvt.pass.cpp libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.string/ctor_codecvt_state.pass.cpp libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.string/ctor_copy.pass.cpp libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.string/ctor_err_string.pass.cpp libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.string/depr.verify.cpp libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.string/from_bytes.pass.cpp libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.string/state.pass.cpp libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.string/to_bytes.pass.cpp libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.string/types.pass.cpp
Index: libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.string/types.pass.cpp =================================================================== --- libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.string/types.pass.cpp +++ libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.string/types.pass.cpp @@ -8,6 +8,8 @@ // <locale> +// ADDITIONAL_COMPILE_FLAGS: -D_LIBCPP_DISABLE_DEPRECATION_WARNINGS + // template<class Codecvt, class Elem = wchar_t, // class Wide_alloc = allocator<Elem>, // class Byte_alloc = allocator<char>> Index: libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.string/to_bytes.pass.cpp =================================================================== --- libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.string/to_bytes.pass.cpp +++ libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.string/to_bytes.pass.cpp @@ -8,6 +8,8 @@ // <locale> +// ADDITIONAL_COMPILE_FLAGS: -D_LIBCPP_DISABLE_DEPRECATION_WARNINGS + // wstring_convert<Codecvt, Elem, Wide_alloc, Byte_alloc> // byte_string to_bytes(Elem wchar); Index: libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.string/state.pass.cpp =================================================================== --- libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.string/state.pass.cpp +++ libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.string/state.pass.cpp @@ -8,6 +8,8 @@ // <locale> +// ADDITIONAL_COMPILE_FLAGS: -D_LIBCPP_DISABLE_DEPRECATION_WARNINGS + // wstring_convert<Codecvt, Elem, Wide_alloc, Byte_alloc> // state_type state() const; Index: libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.string/from_bytes.pass.cpp =================================================================== --- libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.string/from_bytes.pass.cpp +++ libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.string/from_bytes.pass.cpp @@ -8,6 +8,8 @@ // <locale> +// ADDITIONAL_COMPILE_FLAGS: -D_LIBCPP_DISABLE_DEPRECATION_WARNINGS + // wstring_convert<Codecvt, Elem, Wide_alloc, Byte_alloc> // wide_string from_bytes(char byte); Index: libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.string/depr.verify.cpp =================================================================== --- libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.string/depr.verify.cpp +++ libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.string/depr.verify.cpp @@ -6,29 +6,14 @@ // //===----------------------------------------------------------------------===// -// <locale> +// UNSUPPORTED: c++03, c++11, c++14 -// wbuffer_convert<Codecvt, Elem, Tr> +// <codecvt> -// state_type state() const; +// ensure that wstring_convert is marked as deprecated -// XFAIL: no-wide-characters - -#include <locale> #include <codecvt> -#include <sstream> -#include <cassert> - -#include "test_macros.h" - -int main(int, char**) -{ - typedef std::wbuffer_convert<std::codecvt_utf8<wchar_t> > B; - { - B b; - std::mbstate_t s = b.state(); - ((void)s); - } +#include <locale> - return 0; -} +std::wstring_convert<std::codecvt_utf8<wchar_t>> c1; // expected-warning {{'wstring_convert<std::codecvt_utf8<wchar_t, 1114111, 0>>' is deprecated}} +// expected-warning@-1 {{'codecvt_utf8<wchar_t, 1114111, 0>' is deprecated}} Index: libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.string/ctor_err_string.pass.cpp =================================================================== --- libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.string/ctor_err_string.pass.cpp +++ libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.string/ctor_err_string.pass.cpp @@ -8,6 +8,8 @@ // <locale> +// ADDITIONAL_COMPILE_FLAGS: -D_LIBCPP_DISABLE_DEPRECATION_WARNINGS + // wstring_convert<Codecvt, Elem, Wide_alloc, Byte_alloc> // wstring_convert(const byte_string& byte_err, Index: libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.string/ctor_copy.pass.cpp =================================================================== --- libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.string/ctor_copy.pass.cpp +++ libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.string/ctor_copy.pass.cpp @@ -12,6 +12,8 @@ // <locale> +// ADDITIONAL_COMPILE_FLAGS: -D_LIBCPP_DISABLE_DEPRECATION_WARNINGS + // wstring_convert<Codecvt, Elem, Wide_alloc, Byte_alloc> // wstring_convert(wstring_convert const&) = delete; Index: libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.string/ctor_codecvt_state.pass.cpp =================================================================== --- libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.string/ctor_codecvt_state.pass.cpp +++ libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.string/ctor_codecvt_state.pass.cpp @@ -8,6 +8,8 @@ // <locale> +// ADDITIONAL_COMPILE_FLAGS: -D_LIBCPP_DISABLE_DEPRECATION_WARNINGS + // wstring_convert<Codecvt, Elem, Wide_alloc, Byte_alloc> // wstring_convert(Codecvt* pcvt, state_type state); Index: libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.string/ctor_codecvt.pass.cpp =================================================================== --- libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.string/ctor_codecvt.pass.cpp +++ libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.string/ctor_codecvt.pass.cpp @@ -8,6 +8,8 @@ // <locale> +// ADDITIONAL_COMPILE_FLAGS: -D_LIBCPP_DISABLE_DEPRECATION_WARNINGS + // wstring_convert<Codecvt, Elem, Wide_alloc, Byte_alloc> // wstring_convert(Codecvt* pcvt = new Codecvt); // before C++14 Index: libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.string/converted.pass.cpp =================================================================== --- libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.string/converted.pass.cpp +++ libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.string/converted.pass.cpp @@ -8,6 +8,8 @@ // <locale> +// ADDITIONAL_COMPILE_FLAGS: -D_LIBCPP_DISABLE_DEPRECATION_WARNINGS + // wstring_convert<Codecvt, Elem, Wide_alloc, Byte_alloc> // size_t converted() const; Index: libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.buffer/underflow.pass.cpp =================================================================== --- libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.buffer/underflow.pass.cpp +++ libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.buffer/underflow.pass.cpp @@ -10,6 +10,8 @@ // <locale> +// ADDITIONAL_COMPILE_FLAGS: -D_LIBCPP_DISABLE_DEPRECATION_WARNINGS + // wbuffer_convert<Codecvt, Elem, Tr> // int_type underflow(); Index: libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.buffer/test.pass.cpp =================================================================== --- libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.buffer/test.pass.cpp +++ libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.buffer/test.pass.cpp @@ -8,6 +8,8 @@ // <locale> +// ADDITIONAL_COMPILE_FLAGS: -D_LIBCPP_DISABLE_DEPRECATION_WARNINGS + // wbuffer_convert<Codecvt, Elem, Tr> // XFAIL: no-wide-characters Index: libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.buffer/seekoff.pass.cpp =================================================================== --- libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.buffer/seekoff.pass.cpp +++ libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.buffer/seekoff.pass.cpp @@ -8,6 +8,8 @@ // <locale> +// ADDITIONAL_COMPILE_FLAGS: -D_LIBCPP_DISABLE_DEPRECATION_WARNINGS + // wbuffer_convert<Codecvt, Elem, Tr> // pos_type seekoff(off_type off, ios_base::seekdir way, Index: libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.buffer/rdbuf.pass.cpp =================================================================== --- libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.buffer/rdbuf.pass.cpp +++ libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.buffer/rdbuf.pass.cpp @@ -8,6 +8,8 @@ // <locale> +// ADDITIONAL_COMPILE_FLAGS: -D_LIBCPP_DISABLE_DEPRECATION_WARNINGS + // wbuffer_convert<Codecvt, Elem, Tr> // streambuf *rdbuf(streambuf *bytebuf); Index: libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.buffer/pbackfail.pass.cpp =================================================================== --- libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.buffer/pbackfail.pass.cpp +++ libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.buffer/pbackfail.pass.cpp @@ -10,6 +10,8 @@ // <locale> +// ADDITIONAL_COMPILE_FLAGS: -D_LIBCPP_DISABLE_DEPRECATION_WARNINGS + // wbuffer_convert<Codecvt, Elem, Tr> // int_type pbackfail(int_type c = traits::eof()); Index: libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.buffer/overflow.pass.cpp =================================================================== --- libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.buffer/overflow.pass.cpp +++ libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.buffer/overflow.pass.cpp @@ -8,6 +8,8 @@ // <locale> +// ADDITIONAL_COMPILE_FLAGS: -D_LIBCPP_DISABLE_DEPRECATION_WARNINGS + // wbuffer_convert<Codecvt, Elem, Tr> // int_type overflow(int_type c = traits::eof()); Index: libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.buffer/state.pass.cpp =================================================================== --- libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.buffer/state.pass.cpp +++ libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.buffer/state.pass.cpp @@ -8,6 +8,8 @@ // <locale> +// ADDITIONAL_COMPILE_FLAGS: -D_LIBCPP_DISABLE_DEPRECATION_WARNINGS + // wbuffer_convert<Codecvt, Elem, Tr> // state_type state() const; Index: libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.buffer/depr.verify.cpp =================================================================== --- libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.buffer/depr.verify.cpp +++ libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.buffer/depr.verify.cpp @@ -6,29 +6,14 @@ // //===----------------------------------------------------------------------===// -// <locale> +// UNSUPPORTED: c++03, c++11, c++14 -// wbuffer_convert<Codecvt, Elem, Tr> +// <codecvt> -// state_type state() const; +// ensure that wbuffer_convert is marked as deprecated -// XFAIL: no-wide-characters - -#include <locale> #include <codecvt> -#include <sstream> -#include <cassert> - -#include "test_macros.h" - -int main(int, char**) -{ - typedef std::wbuffer_convert<std::codecvt_utf8<wchar_t> > B; - { - B b; - std::mbstate_t s = b.state(); - ((void)s); - } +#include <locale> - return 0; -} +std::wbuffer_convert<std::codecvt_utf8<wchar_t>> c1; // expected-warning {{'wbuffer_convert<std::codecvt_utf8<wchar_t, 1114111, 0>>' is deprecated}} +// expected-warning@-1 {{'codecvt_utf8<wchar_t, 1114111, 0>' is deprecated}} Index: libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.buffer/ctor.pass.cpp =================================================================== --- libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.buffer/ctor.pass.cpp +++ libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.buffer/ctor.pass.cpp @@ -8,6 +8,8 @@ // <locale> +// ADDITIONAL_COMPILE_FLAGS: -D_LIBCPP_DISABLE_DEPRECATION_WARNINGS + // wbuffer_convert<Codecvt, Elem, Tr> // wbuffer_convert(streambuf* bytebuf = 0, Codecvt* pcvt = new Codecvt, Index: libcxx/test/std/localization/locale.stdcvt/depr.verify.cpp =================================================================== --- /dev/null +++ libcxx/test/std/localization/locale.stdcvt/depr.verify.cpp @@ -0,0 +1,20 @@ +//===----------------------------------------------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +// UNSUPPORTED: c++03, c++11, c++14 + +// <codecvt> + +// ensure that codecvt content is marked as deprecated + +#include <codecvt> + +std::codecvt_mode c1; // expected-warning {{'codecvt_mode' is deprecated}} +std::codecvt_utf8<wchar_t> c2; // expected-warning {{'codecvt_utf8<wchar_t, 1114111, 0>' is deprecated}} +std::codecvt_utf16<wchar_t> c3; // expected-warning {{'codecvt_utf16<wchar_t, 1114111, 0>' is deprecated}} +std::codecvt_utf8_utf16<wchar_t> c4; // expected-warning {{'codecvt_utf8_utf16<wchar_t, 1114111, 0>' is deprecated}} Index: libcxx/test/std/localization/locale.stdcvt/codecvt_utf8_utf16_unshift.pass.cpp =================================================================== --- libcxx/test/std/localization/locale.stdcvt/codecvt_utf8_utf16_unshift.pass.cpp +++ libcxx/test/std/localization/locale.stdcvt/codecvt_utf8_utf16_unshift.pass.cpp @@ -8,6 +8,8 @@ // <codecvt> +// ADDITIONAL_COMPILE_FLAGS: -D_LIBCPP_DISABLE_DEPRECATION_WARNINGS + // template <class Elem, unsigned long Maxcode = 0x10ffff, // codecvt_mode Mode = (codecvt_mode)0> // class codecvt_utf8_utf16 Index: libcxx/test/std/localization/locale.stdcvt/codecvt_utf8_utf16_out.pass.cpp =================================================================== --- libcxx/test/std/localization/locale.stdcvt/codecvt_utf8_utf16_out.pass.cpp +++ libcxx/test/std/localization/locale.stdcvt/codecvt_utf8_utf16_out.pass.cpp @@ -8,6 +8,8 @@ // <codecvt> +// ADDITIONAL_COMPILE_FLAGS: -D_LIBCPP_DISABLE_DEPRECATION_WARNINGS + // template <class Elem, unsigned long Maxcode = 0x10ffff, // codecvt_mode Mode = (codecvt_mode)0> // class codecvt_utf8_utf16 Index: libcxx/test/std/localization/locale.stdcvt/codecvt_utf8_utf16_max_length.pass.cpp =================================================================== --- libcxx/test/std/localization/locale.stdcvt/codecvt_utf8_utf16_max_length.pass.cpp +++ libcxx/test/std/localization/locale.stdcvt/codecvt_utf8_utf16_max_length.pass.cpp @@ -8,6 +8,8 @@ // <codecvt> +// ADDITIONAL_COMPILE_FLAGS: -D_LIBCPP_DISABLE_DEPRECATION_WARNINGS + // template <class Elem, unsigned long Maxcode = 0x10ffff, // codecvt_mode Mode = (codecvt_mode)0> // class codecvt_utf8_utf16 Index: libcxx/test/std/localization/locale.stdcvt/codecvt_utf8_utf16_length.pass.cpp =================================================================== --- libcxx/test/std/localization/locale.stdcvt/codecvt_utf8_utf16_length.pass.cpp +++ libcxx/test/std/localization/locale.stdcvt/codecvt_utf8_utf16_length.pass.cpp @@ -8,6 +8,8 @@ // <codecvt> +// ADDITIONAL_COMPILE_FLAGS: -D_LIBCPP_DISABLE_DEPRECATION_WARNINGS + // template <class Elem, unsigned long Maxcode = 0x10ffff, // codecvt_mode Mode = (codecvt_mode)0> // class codecvt_utf8_utf16 Index: libcxx/test/std/localization/locale.stdcvt/codecvt_utf8_utf16_in.pass.cpp =================================================================== --- libcxx/test/std/localization/locale.stdcvt/codecvt_utf8_utf16_in.pass.cpp +++ libcxx/test/std/localization/locale.stdcvt/codecvt_utf8_utf16_in.pass.cpp @@ -8,6 +8,8 @@ // <codecvt> +// ADDITIONAL_COMPILE_FLAGS: -D_LIBCPP_DISABLE_DEPRECATION_WARNINGS + // template <class Elem, unsigned long Maxcode = 0x10ffff, // codecvt_mode Mode = (codecvt_mode)0> // class codecvt_utf8_utf16 Index: libcxx/test/std/localization/locale.stdcvt/codecvt_utf8_utf16_encoding.pass.cpp =================================================================== --- libcxx/test/std/localization/locale.stdcvt/codecvt_utf8_utf16_encoding.pass.cpp +++ libcxx/test/std/localization/locale.stdcvt/codecvt_utf8_utf16_encoding.pass.cpp @@ -8,6 +8,8 @@ // <codecvt> +// ADDITIONAL_COMPILE_FLAGS: -D_LIBCPP_DISABLE_DEPRECATION_WARNINGS + // template <class Elem, unsigned long Maxcode = 0x10ffff, // codecvt_mode Mode = (codecvt_mode)0> // class codecvt_utf8_utf16 Index: libcxx/test/std/localization/locale.stdcvt/codecvt_utf8_utf16_always_noconv.pass.cpp =================================================================== --- libcxx/test/std/localization/locale.stdcvt/codecvt_utf8_utf16_always_noconv.pass.cpp +++ libcxx/test/std/localization/locale.stdcvt/codecvt_utf8_utf16_always_noconv.pass.cpp @@ -8,6 +8,8 @@ // <codecvt> +// ADDITIONAL_COMPILE_FLAGS: -D_LIBCPP_DISABLE_DEPRECATION_WARNINGS + // template <class Elem, unsigned long Maxcode = 0x10ffff, // codecvt_mode Mode = (codecvt_mode)0> // class codecvt_utf8_utf16 Index: libcxx/test/std/localization/locale.stdcvt/codecvt_utf8_unshift.pass.cpp =================================================================== --- libcxx/test/std/localization/locale.stdcvt/codecvt_utf8_unshift.pass.cpp +++ libcxx/test/std/localization/locale.stdcvt/codecvt_utf8_unshift.pass.cpp @@ -8,6 +8,8 @@ // <codecvt> +// ADDITIONAL_COMPILE_FLAGS: -D_LIBCPP_DISABLE_DEPRECATION_WARNINGS + // template <class Elem, unsigned long Maxcode = 0x10ffff, // codecvt_mode Mode = (codecvt_mode)0> // class codecvt_utf8 Index: libcxx/test/std/localization/locale.stdcvt/codecvt_utf8_out.pass.cpp =================================================================== --- libcxx/test/std/localization/locale.stdcvt/codecvt_utf8_out.pass.cpp +++ libcxx/test/std/localization/locale.stdcvt/codecvt_utf8_out.pass.cpp @@ -8,6 +8,8 @@ // <codecvt> +// ADDITIONAL_COMPILE_FLAGS: -D_LIBCPP_DISABLE_DEPRECATION_WARNINGS + // template <class Elem, unsigned long Maxcode = 0x10ffff, // codecvt_mode Mode = (codecvt_mode)0> // class codecvt_utf8 Index: libcxx/test/std/localization/locale.stdcvt/codecvt_utf8_max_length.pass.cpp =================================================================== --- libcxx/test/std/localization/locale.stdcvt/codecvt_utf8_max_length.pass.cpp +++ libcxx/test/std/localization/locale.stdcvt/codecvt_utf8_max_length.pass.cpp @@ -8,6 +8,8 @@ // <codecvt> +// ADDITIONAL_COMPILE_FLAGS: -D_LIBCPP_DISABLE_DEPRECATION_WARNINGS + // template <class Elem, unsigned long Maxcode = 0x10ffff, // codecvt_mode Mode = (codecvt_mode)0> // class codecvt_utf8 Index: libcxx/test/std/localization/locale.stdcvt/codecvt_utf8_length.pass.cpp =================================================================== --- libcxx/test/std/localization/locale.stdcvt/codecvt_utf8_length.pass.cpp +++ libcxx/test/std/localization/locale.stdcvt/codecvt_utf8_length.pass.cpp @@ -8,6 +8,8 @@ // <codecvt> +// ADDITIONAL_COMPILE_FLAGS: -D_LIBCPP_DISABLE_DEPRECATION_WARNINGS + // template <class Elem, unsigned long Maxcode = 0x10ffff, // codecvt_mode Mode = (codecvt_mode)0> // class codecvt_utf8 Index: libcxx/test/std/localization/locale.stdcvt/codecvt_utf8_in.pass.cpp =================================================================== --- libcxx/test/std/localization/locale.stdcvt/codecvt_utf8_in.pass.cpp +++ libcxx/test/std/localization/locale.stdcvt/codecvt_utf8_in.pass.cpp @@ -8,6 +8,8 @@ // <codecvt> +// ADDITIONAL_COMPILE_FLAGS: -D_LIBCPP_DISABLE_DEPRECATION_WARNINGS + // template <class Elem, unsigned long Maxcode = 0x10ffff, // codecvt_mode Mode = (codecvt_mode)0> // class codecvt_utf8 Index: libcxx/test/std/localization/locale.stdcvt/codecvt_utf8_encoding.pass.cpp =================================================================== --- libcxx/test/std/localization/locale.stdcvt/codecvt_utf8_encoding.pass.cpp +++ libcxx/test/std/localization/locale.stdcvt/codecvt_utf8_encoding.pass.cpp @@ -8,6 +8,8 @@ // <codecvt> +// ADDITIONAL_COMPILE_FLAGS: -D_LIBCPP_DISABLE_DEPRECATION_WARNINGS + // template <class Elem, unsigned long Maxcode = 0x10ffff, // codecvt_mode Mode = (codecvt_mode)0> // class codecvt_utf8 Index: libcxx/test/std/localization/locale.stdcvt/codecvt_utf8_always_noconv.pass.cpp =================================================================== --- libcxx/test/std/localization/locale.stdcvt/codecvt_utf8_always_noconv.pass.cpp +++ libcxx/test/std/localization/locale.stdcvt/codecvt_utf8_always_noconv.pass.cpp @@ -8,6 +8,8 @@ // <codecvt> +// ADDITIONAL_COMPILE_FLAGS: -D_LIBCPP_DISABLE_DEPRECATION_WARNINGS + // template <class Elem, unsigned long Maxcode = 0x10ffff, // codecvt_mode Mode = (codecvt_mode)0> // class codecvt_utf8 Index: libcxx/test/std/localization/locale.stdcvt/codecvt_utf8.pass.cpp =================================================================== --- libcxx/test/std/localization/locale.stdcvt/codecvt_utf8.pass.cpp +++ libcxx/test/std/localization/locale.stdcvt/codecvt_utf8.pass.cpp @@ -8,6 +8,8 @@ // <codecvt> +// ADDITIONAL_COMPILE_FLAGS: -D_LIBCPP_DISABLE_DEPRECATION_WARNINGS + // template <class Elem, unsigned long Maxcode = 0x10ffff, // codecvt_mode Mode = (codecvt_mode)0> // class codecvt_utf8 Index: libcxx/test/std/localization/locale.stdcvt/codecvt_utf16_unshift.pass.cpp =================================================================== --- libcxx/test/std/localization/locale.stdcvt/codecvt_utf16_unshift.pass.cpp +++ libcxx/test/std/localization/locale.stdcvt/codecvt_utf16_unshift.pass.cpp @@ -8,6 +8,8 @@ // <codecvt> +// ADDITIONAL_COMPILE_FLAGS: -D_LIBCPP_DISABLE_DEPRECATION_WARNINGS + // template <class Elem, unsigned long Maxcode = 0x10ffff, // codecvt_mode Mode = (codecvt_mode)0> // class codecvt_utf16 Index: libcxx/test/std/localization/locale.stdcvt/codecvt_utf16_out.pass.cpp =================================================================== --- libcxx/test/std/localization/locale.stdcvt/codecvt_utf16_out.pass.cpp +++ libcxx/test/std/localization/locale.stdcvt/codecvt_utf16_out.pass.cpp @@ -8,6 +8,8 @@ // <codecvt> +// ADDITIONAL_COMPILE_FLAGS: -D_LIBCPP_DISABLE_DEPRECATION_WARNINGS + // template <class Elem, unsigned long Maxcode = 0x10ffff, // codecvt_mode Mode = (codecvt_mode)0> // class codecvt_utf16 Index: libcxx/test/std/localization/locale.stdcvt/codecvt_utf16_max_length.pass.cpp =================================================================== --- libcxx/test/std/localization/locale.stdcvt/codecvt_utf16_max_length.pass.cpp +++ libcxx/test/std/localization/locale.stdcvt/codecvt_utf16_max_length.pass.cpp @@ -8,6 +8,8 @@ // <codecvt> +// ADDITIONAL_COMPILE_FLAGS: -D_LIBCPP_DISABLE_DEPRECATION_WARNINGS + // template <class Elem, unsigned long Maxcode = 0x10ffff, // codecvt_mode Mode = (codecvt_mode)0> // class codecvt_utf16 Index: libcxx/test/std/localization/locale.stdcvt/codecvt_utf16_length.pass.cpp =================================================================== --- libcxx/test/std/localization/locale.stdcvt/codecvt_utf16_length.pass.cpp +++ libcxx/test/std/localization/locale.stdcvt/codecvt_utf16_length.pass.cpp @@ -8,6 +8,8 @@ // <codecvt> +// ADDITIONAL_COMPILE_FLAGS: -D_LIBCPP_DISABLE_DEPRECATION_WARNINGS + // template <class Elem, unsigned long Maxcode = 0x10ffff, // codecvt_mode Mode = (codecvt_mode)0> // class codecvt_utf16 Index: libcxx/test/std/localization/locale.stdcvt/codecvt_utf16_in.pass.cpp =================================================================== --- libcxx/test/std/localization/locale.stdcvt/codecvt_utf16_in.pass.cpp +++ libcxx/test/std/localization/locale.stdcvt/codecvt_utf16_in.pass.cpp @@ -8,6 +8,8 @@ // <codecvt> +// ADDITIONAL_COMPILE_FLAGS: -D_LIBCPP_DISABLE_DEPRECATION_WARNINGS + // template <class Elem, unsigned long Maxcode = 0x10ffff, // codecvt_mode Mode = (codecvt_mode)0> // class codecvt_utf16 Index: libcxx/test/std/localization/locale.stdcvt/codecvt_utf16_encoding.pass.cpp =================================================================== --- libcxx/test/std/localization/locale.stdcvt/codecvt_utf16_encoding.pass.cpp +++ libcxx/test/std/localization/locale.stdcvt/codecvt_utf16_encoding.pass.cpp @@ -8,6 +8,8 @@ // <codecvt> +// ADDITIONAL_COMPILE_FLAGS: -D_LIBCPP_DISABLE_DEPRECATION_WARNINGS + // template <class Elem, unsigned long Maxcode = 0x10ffff, // codecvt_mode Mode = (codecvt_mode)0> // class codecvt_utf16 Index: libcxx/test/std/localization/locale.stdcvt/codecvt_utf16_always_noconv.pass.cpp =================================================================== --- libcxx/test/std/localization/locale.stdcvt/codecvt_utf16_always_noconv.pass.cpp +++ libcxx/test/std/localization/locale.stdcvt/codecvt_utf16_always_noconv.pass.cpp @@ -8,6 +8,8 @@ // <codecvt> +// ADDITIONAL_COMPILE_FLAGS: -D_LIBCPP_DISABLE_DEPRECATION_WARNINGS + // template <class Elem, unsigned long Maxcode = 0x10ffff, // codecvt_mode Mode = (codecvt_mode)0> // class codecvt_utf16 Index: libcxx/test/std/localization/locale.stdcvt/codecvt_utf16.pass.cpp =================================================================== --- libcxx/test/std/localization/locale.stdcvt/codecvt_utf16.pass.cpp +++ libcxx/test/std/localization/locale.stdcvt/codecvt_utf16.pass.cpp @@ -8,6 +8,8 @@ // <codecvt> +// ADDITIONAL_COMPILE_FLAGS: -D_LIBCPP_DISABLE_DEPRECATION_WARNINGS + // template <class Elem, unsigned long Maxcode = 0x10ffff, // codecvt_mode Mode = (codecvt_mode)0> // class codecvt_utf16 Index: libcxx/test/std/localization/locale.stdcvt/codecvt_mode.pass.cpp =================================================================== --- libcxx/test/std/localization/locale.stdcvt/codecvt_mode.pass.cpp +++ libcxx/test/std/localization/locale.stdcvt/codecvt_mode.pass.cpp @@ -8,6 +8,8 @@ // <codecvt> +// ADDITIONAL_COMPILE_FLAGS: -D_LIBCPP_DISABLE_DEPRECATION_WARNINGS + // enum codecvt_mode // { // consume_header = 4, Index: libcxx/test/libcxx/localization/locales/locale.convenience/conversions/conversions.string/ctor_move.pass.cpp =================================================================== --- libcxx/test/libcxx/localization/locales/locale.convenience/conversions/conversions.string/ctor_move.pass.cpp +++ libcxx/test/libcxx/localization/locales/locale.convenience/conversions/conversions.string/ctor_move.pass.cpp @@ -10,6 +10,8 @@ // UNSUPPORTED: c++03 +// ADDITIONAL_COMPILE_FLAGS: -D_LIBCPP_DISABLE_DEPRECATION_WARNINGS + // <locale> // wstring_convert<Codecvt, Elem, Wide_alloc, Byte_alloc> Index: libcxx/src/locale.cpp =================================================================== --- libcxx/src/locale.cpp +++ libcxx/src/locale.cpp @@ -1831,6 +1831,8 @@ // 040000 - 0FFFFF D8C0 - DBBF, DC00 - DFFF F1 - F3, 80 - BF, 80 - BF, 80 - BF 786432 // 100000 - 10FFFF DBC0 - DBFF, DC00 - DFFF F4 - F4, 80 - 8F, 80 - BF, 80 - BF 65536 +_LIBCPP_DIAGNOSTIC_PUSH +_LIBCPP_CLANG_DIAGNOSTIC_IGNORED("-Wdeprecated-declarations") static codecvt_base::result utf16_to_utf8(const uint16_t* frm, const uint16_t* frm_end, const uint16_t*& frm_nxt, @@ -3204,6 +3206,8 @@ return static_cast<int>(frm_nxt - frm); } +_LIBCPP_DIAGNOSTIC_POP + // template <> class codecvt<char16_t, char, mbstate_t> locale::id codecvt<char16_t, char, mbstate_t>::id; @@ -3611,6 +3615,8 @@ #endif } +_LIBCPP_DIAGNOSTIC_PUSH +_LIBCPP_CLANG_DIAGNOSTIC_IGNORED("-Wdeprecated-declarations") int __codecvt_utf8<wchar_t>::do_max_length() const noexcept { @@ -4524,6 +4530,7 @@ return 7; return 4; } +_LIBCPP_DIAGNOSTIC_POP // __narrow_to_utf8<16> Index: libcxx/include/locale =================================================================== --- libcxx/include/locale +++ libcxx/include/locale @@ -3612,7 +3612,7 @@ template<class _Codecvt, class _Elem = wchar_t, class _Wide_alloc = allocator<_Elem>, class _Byte_alloc = allocator<char> > -class _LIBCPP_TEMPLATE_VIS wstring_convert +class _LIBCPP_TEMPLATE_VIS _LIBCPP_DEPRECATED_IN_CXX17 wstring_convert { public: typedef basic_string<char, char_traits<char>, _Byte_alloc> byte_string; @@ -3877,7 +3877,7 @@ } template <class _Codecvt, class _Elem = wchar_t, class _Tr = char_traits<_Elem> > -class _LIBCPP_TEMPLATE_VIS wbuffer_convert +class _LIBCPP_TEMPLATE_VIS _LIBCPP_DEPRECATED_IN_CXX17 wbuffer_convert : public basic_streambuf<_Elem, _Tr> { public: Index: libcxx/include/codecvt =================================================================== --- libcxx/include/codecvt +++ libcxx/include/codecvt @@ -65,7 +65,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD -enum codecvt_mode +enum _LIBCPP_DEPRECATED_IN_CXX17 codecvt_mode { consume_header = 4, generate_header = 2, @@ -82,17 +82,23 @@ : public codecvt<wchar_t, char, mbstate_t> { unsigned long _Maxcode_; +_LIBCPP_DIAGNOSTIC_PUSH +_LIBCPP_CLANG_DIAGNOSTIC_IGNORED("-Wdeprecated-declarations") codecvt_mode _Mode_; +_LIBCPP_DIAGNOSTIC_POP public: typedef wchar_t intern_type; typedef char extern_type; typedef mbstate_t state_type; +_LIBCPP_DIAGNOSTIC_PUSH +_LIBCPP_CLANG_DIAGNOSTIC_IGNORED("-Wdeprecated-declarations") _LIBCPP_INLINE_VISIBILITY explicit __codecvt_utf8(size_t __refs, unsigned long _Maxcode, codecvt_mode _Mode) : codecvt<wchar_t, char, mbstate_t>(__refs), _Maxcode_(_Maxcode), _Mode_(_Mode) {} +_LIBCPP_DIAGNOSTIC_POP protected: virtual result do_out(state_type& __st, @@ -189,9 +195,11 @@ virtual int do_max_length() const _NOEXCEPT; }; +_LIBCPP_DIAGNOSTIC_PUSH +_LIBCPP_CLANG_DIAGNOSTIC_IGNORED("-Wdeprecated-declarations") template <class _Elem, unsigned long _Maxcode = 0x10ffff, codecvt_mode _Mode = (codecvt_mode)0> -class _LIBCPP_TEMPLATE_VIS codecvt_utf8 +class _LIBCPP_TEMPLATE_VIS _LIBCPP_DEPRECATED_IN_CXX17 codecvt_utf8 : public __codecvt_utf8<_Elem> { public: @@ -202,6 +210,7 @@ _LIBCPP_INLINE_VISIBILITY ~codecvt_utf8() {} }; +_LIBCPP_DIAGNOSTIC_POP // codecvt_utf16 @@ -213,17 +222,23 @@ : public codecvt<wchar_t, char, mbstate_t> { unsigned long _Maxcode_; +_LIBCPP_DIAGNOSTIC_PUSH +_LIBCPP_CLANG_DIAGNOSTIC_IGNORED("-Wdeprecated-declarations") codecvt_mode _Mode_; +_LIBCPP_DIAGNOSTIC_POP public: typedef wchar_t intern_type; typedef char extern_type; typedef mbstate_t state_type; +_LIBCPP_DIAGNOSTIC_PUSH +_LIBCPP_CLANG_DIAGNOSTIC_IGNORED("-Wdeprecated-declarations") _LIBCPP_INLINE_VISIBILITY explicit __codecvt_utf16(size_t __refs, unsigned long _Maxcode, codecvt_mode _Mode) : codecvt<wchar_t, char, mbstate_t>(__refs), _Maxcode_(_Maxcode), _Mode_(_Mode) {} +_LIBCPP_DIAGNOSTIC_POP protected: virtual result do_out(state_type& __st, @@ -248,17 +263,23 @@ : public codecvt<wchar_t, char, mbstate_t> { unsigned long _Maxcode_; +_LIBCPP_DIAGNOSTIC_PUSH +_LIBCPP_CLANG_DIAGNOSTIC_IGNORED("-Wdeprecated-declarations") codecvt_mode _Mode_; +_LIBCPP_DIAGNOSTIC_POP public: typedef wchar_t intern_type; typedef char extern_type; typedef mbstate_t state_type; +_LIBCPP_DIAGNOSTIC_PUSH +_LIBCPP_CLANG_DIAGNOSTIC_IGNORED("-Wdeprecated-declarations") _LIBCPP_INLINE_VISIBILITY explicit __codecvt_utf16(size_t __refs, unsigned long _Maxcode, codecvt_mode _Mode) : codecvt<wchar_t, char, mbstate_t>(__refs), _Maxcode_(_Maxcode), _Mode_(_Mode) {} +_LIBCPP_DIAGNOSTIC_POP protected: virtual result do_out(state_type& __st, @@ -431,9 +452,11 @@ virtual int do_max_length() const _NOEXCEPT; }; +_LIBCPP_DIAGNOSTIC_PUSH +_LIBCPP_CLANG_DIAGNOSTIC_IGNORED("-Wdeprecated-declarations") template <class _Elem, unsigned long _Maxcode = 0x10ffff, codecvt_mode _Mode = (codecvt_mode)0> -class _LIBCPP_TEMPLATE_VIS codecvt_utf16 +class _LIBCPP_TEMPLATE_VIS _LIBCPP_DEPRECATED_IN_CXX17 codecvt_utf16 : public __codecvt_utf16<_Elem, _Mode & little_endian> { public: @@ -444,6 +467,7 @@ _LIBCPP_INLINE_VISIBILITY ~codecvt_utf16() {} }; +_LIBCPP_DIAGNOSTIC_POP // codecvt_utf8_utf16 @@ -455,17 +479,23 @@ : public codecvt<wchar_t, char, mbstate_t> { unsigned long _Maxcode_; +_LIBCPP_DIAGNOSTIC_PUSH +_LIBCPP_CLANG_DIAGNOSTIC_IGNORED("-Wdeprecated-declarations") codecvt_mode _Mode_; +_LIBCPP_DIAGNOSTIC_POP public: typedef wchar_t intern_type; typedef char extern_type; typedef mbstate_t state_type; +_LIBCPP_DIAGNOSTIC_PUSH +_LIBCPP_CLANG_DIAGNOSTIC_IGNORED("-Wdeprecated-declarations") _LIBCPP_INLINE_VISIBILITY explicit __codecvt_utf8_utf16(size_t __refs, unsigned long _Maxcode, codecvt_mode _Mode) : codecvt<wchar_t, char, mbstate_t>(__refs), _Maxcode_(_Maxcode), _Mode_(_Mode) {} +_LIBCPP_DIAGNOSTIC_POP protected: virtual result do_out(state_type& __st, @@ -562,9 +592,11 @@ virtual int do_max_length() const _NOEXCEPT; }; +_LIBCPP_DIAGNOSTIC_PUSH +_LIBCPP_CLANG_DIAGNOSTIC_IGNORED("-Wdeprecated-declarations") template <class _Elem, unsigned long _Maxcode = 0x10ffff, codecvt_mode _Mode = (codecvt_mode)0> -class _LIBCPP_TEMPLATE_VIS codecvt_utf8_utf16 +class _LIBCPP_TEMPLATE_VIS _LIBCPP_DEPRECATED_IN_CXX17 codecvt_utf8_utf16 : public __codecvt_utf8_utf16<_Elem> { public: @@ -575,6 +607,7 @@ _LIBCPP_INLINE_VISIBILITY ~codecvt_utf8_utf16() {} }; +_LIBCPP_DIAGNOSTIC_POP _LIBCPP_END_NAMESPACE_STD Index: libcxx/docs/Status/Cxx17Papers.csv =================================================================== --- libcxx/docs/Status/Cxx17Papers.csv +++ libcxx/docs/Status/Cxx17Papers.csv @@ -106,7 +106,7 @@ "`P0599R1 <https://wg21.link/P0599R1>`__","LWG","noexcept for hash functions","Kona","|Complete|","5.0" "`P0604R0 <https://wg21.link/P0604R0>`__","LWG","Resolving GB 55, US 84, US 85, US 86","Kona","|Complete|","" "`P0607R0 <https://wg21.link/P0607R0>`__","LWG","Inline Variables for the Standard Library","Kona","|In Progress| [#note-P0607]_","6.0" -"`P0618R0 <https://wg21.link/P0618R0>`__","LWG","Deprecating <codecvt>","Kona","","" +"`P0618R0 <https://wg21.link/P0618R0>`__","LWG","Deprecating <codecvt>","Kona","|Complete|","15.0" "`P0623R0 <https://wg21.link/P0623R0>`__","LWG","Final C++17 Parallel Algorithms Fixes","Kona","","" "","","","","","" "`P0682R1 <https://wg21.link/P0682R1>`__","LWG","Repairing elementary string conversions","Toronto","","" Index: libcxx/docs/ReleaseNotes.rst =================================================================== --- libcxx/docs/ReleaseNotes.rst +++ libcxx/docs/ReleaseNotes.rst @@ -46,6 +46,8 @@ - Implemented P0980R1 (Making ``std::string`` constexpr) +- Implemented P0618R0 (Deprecating <codecvt>) + - Marked the following papers as "Complete" (note that some of those might have been implemented in a previous release but not marked as such): @@ -144,6 +146,10 @@ as a return type instead of relying on the type of ``valarray``-expressions, which is not guaranteed by the Standard anyway. +- The contents of ``<codecvt>``, ``wstring_convert`` and ``wbuffer_convert`` have been marked as deprecated. + To disable deprecation warnings you have to define ``_LIBCPP_DISABLE_DEPRECATION_WARNINGS``. Note that this + disables all deprecation warnings. + Build System Changes --------------------
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits