[Openmp-commits] [libcxx] [openmp] [libc++] basic_ios<wchar_t> cannot store fill character WCHAR_MAX (PR #89305)

Xing Xue via Openmp-commits openmp-commits at lists.llvm.org
Tue Jun 11 09:19:48 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.
----------------
xingxue-ibm wrote:

Removed the sentence as suggested, thanks!

https://github.com/llvm/llvm-project/pull/89305


More information about the Openmp-commits mailing list