[libcxx-commits] [libcxx] [openmp] [libc++] basic_ios<wchar_t> cannot store fill character WCHAR_MAX (PR #89305)
David Tenty via libcxx-commits
libcxx-commits at lists.llvm.org
Mon Jun 10 13:34:54 PDT 2024
================
@@ -146,6 +146,12 @@ ABI Affecting Changes
``random_device`` could throw a ``system_error`` with this value. It now
throws ``ENOMSG``.
+- libcxx ``std::basic_ios`` uses ``WEOF`` to indicate that the fill value is uninitialized. However, on platforms
+ where the size of ``char_type`` is equal to or greater than the size of ``int_type`` and ``char_type`` is unsigned,
+ ``std::char_traits<char_type>::eq_int_type()`` cannot distinguish between ``WEOF`` and ``WCHAR_MAX``. New helper
+ class ``_FillHelper`` uses a boolean variable to indicate whether the fill value has been initialized so that a fill
+ value ``WEOF`` set by the user won't be treated as indicating the fill value is uninitialized.
+ Undefining macro ``_LIBCXX_IOS_USE_FILL_HELPER`` to keep the ABI verson 1 behavior if needed.
----------------
daltenty wrote:
I think you should leave this part off, this isn't intended to be a user configurable macro, so I wouldn't mention it in release notes:
```suggestion
```
https://github.com/llvm/llvm-project/pull/89305
More information about the libcxx-commits
mailing list