Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: llvmorg-21-init, llvmorg-19.1.7, llvmorg-19.1.6, llvmorg-19.1.5, llvmorg-19.1.4, llvmorg-19.1.3, llvmorg-19.1.2, llvmorg-19.1.1, llvmorg-19.1.0, llvmorg-19.1.0-rc4
# 4a2a1b51 22-Aug-2024 Vladimir Vereschaka <vvereschaka@accesssoftek.com>

[libc++] Adjust armv7 XFAIL target triple for the setfill_wchar_max test. (#105586)

Also allow XFAIL for armv7-*-linux-gnueabihf targets, not only for
armv7l-*.


Revision tags: llvmorg-19.1.0-rc3, llvmorg-19.1.0-rc2, llvmorg-19.1.0-rc1, llvmorg-20-init
# ad154281 18-Jul-2024 David Tenty <daltenty@ibm.com>

[NFC][libc++][test] loosen XFAIL condition for setfill_wchar_max.pass.cpp

So we can also match aarch64 triples which have four components instead of three when disabling the test, which the case on

[NFC][libc++][test] loosen XFAIL condition for setfill_wchar_max.pass.cpp

So we can also match aarch64 triples which have four components instead of three when disabling the test, which the case on some buildbots.

Follow on to #89305

show more ...


# 194f98c2 17-Jul-2024 Xing Xue <xingxue@outlook.com>

[libc++] basic_ios<wchar_t> cannot store fill character WCHAR_MAX (#89305)

`libcxx std::basic_ios` uses `WEOF` to indicate the `fill` value is
uninitialized. On some platforms (e.g AIX and zOS in 6

[libc++] basic_ios<wchar_t> cannot store fill character WCHAR_MAX (#89305)

`libcxx std::basic_ios` uses `WEOF` to indicate the `fill` value is
uninitialized. On some platforms (e.g AIX and zOS in 64-bit mode)
`wchar_t` is 4 bytes `unsigned` and `wint_t` is also 4 bytes which means
`WEOF` cannot be distinguished from `WCHAR_MAX` by
`std::char_traits<wchar_t>::eq_int_type()`, meaning this valid character
value cannot be stored on affected platforms (as the implementation
triggers reinitialization to `widen(’ ’)`).

This patch introduces a new helper class `_FillHelper` uses a boolean
variable to indicate whether the fill character has been initialized,
which is used by default in libcxx ABI version 2. The patch does not
affect ABI version 1 except for targets AIX in 32- and 64-bit and z/OS
in 64-bit (so that the layout of the implementation is compatible with
the current IBM system provided libc++)

This is a continuation of Phabricator patch
[D124555](https://reviews.llvm.org/D124555). This patch uses a modified
version of the [approach](https://reviews.llvm.org/D124555#3566746)
suggested by @ldionne .

---------

Co-authored-by: Louis Dionne <ldionne.2@gmail.com>
Co-authored-by: David Tenty <daltenty.dev@gmail.com>

show more ...