[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
Sat Jun 25 10:31:32 PDT 2022


cebowleratibm updated this revision to Diff 439997.
cebowleratibm added a comment.
Herald added a subscriber: fedor.sergeev.

Any basic_ios where `sizeof(char_type) >= sizeof(int_type)` has at least some char value that overlaps with the eof character.  I've modified the proposed test to demonstrate signed char types are affected at -1.

I've proposed a __has_fill_ member directly in basic_ios to retain layout compatibility of derived classes on what IBM has done (downstream) with prior libc++ on AIX.

The patch as proposed also works for zOS.  There's no need for explicit change in the config as the sizeof check get the desired layout in both 32 and 64 bit.


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.439997.patch
Type: text/x-patch
Size: 4592 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/libcxx-commits/attachments/20220625/f61187cc/attachment.bin>


More information about the libcxx-commits mailing list