[libcxx-commits] [PATCH] D124555: [libcxx] basic_ios<wchar_t> cannot store fill character WCHAR_MAX

Chris Bowler via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Wed Jun 22 14:04:28 PDT 2022


cebowleratibm updated this revision to Diff 439148.
cebowleratibm added a comment.
Herald added a subscriber: krytarowski.

1. The selection of the fill set member is moved to the __config.
2. This patch retains ABI compatibility for any of the libc++ CI that reported failures on this issue.
3. Always inject the fill set member for AIX to retain compatibility for AIX.
4. This only fixes basic_ios<wchar_t>.  It is not compliant to instantiate basic_ios with a char type where char_traits::eof is not a sentinel value. #wchar_t is an exception because C++ shouldn't be adding constraints beyond what C guarantees.

I haven't received significant feedback since I overhauled the patch in response to @ldionne 's initial feedback.  The new design implements the fix as needed for new targets, which I think was the primary reason for the revision.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D124555/new/

https://reviews.llvm.org/D124555

Files:
  libcxx/include/__config
  libcxx/include/ios
  libcxx/test/std/input.output/iostream.format/std.manip/setfill_wcharmax.pass.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D124555.439148.patch
Type: text/x-patch
Size: 5074 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/libcxx-commits/attachments/20220622/242a8b9c/attachment.bin>


More information about the libcxx-commits mailing list