|
Revision tags: llvmorg-20.1.0, llvmorg-20.1.0-rc3, llvmorg-20.1.0-rc2, llvmorg-20.1.0-rc1, 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, llvmorg-19.1.0-rc3, llvmorg-19.1.0-rc2, llvmorg-19.1.0-rc1, llvmorg-20-init, llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5, llvmorg-18.1.4, llvmorg-18.1.3, llvmorg-18.1.2, llvmorg-18.1.1, llvmorg-18.1.0, llvmorg-18.1.0-rc4, llvmorg-18.1.0-rc3, llvmorg-18.1.0-rc2, llvmorg-18.1.0-rc1, llvmorg-19-init, llvmorg-17.0.6, llvmorg-17.0.5, llvmorg-17.0.4, llvmorg-17.0.3, llvmorg-17.0.2, llvmorg-17.0.1, llvmorg-17.0.0, llvmorg-17.0.0-rc4, llvmorg-17.0.0-rc3, llvmorg-17.0.0-rc2, llvmorg-17.0.0-rc1, llvmorg-18-init, llvmorg-16.0.6, llvmorg-16.0.5, llvmorg-16.0.4, llvmorg-16.0.3, llvmorg-16.0.2, llvmorg-16.0.1, llvmorg-16.0.0, llvmorg-16.0.0-rc4, llvmorg-16.0.0-rc3, llvmorg-16.0.0-rc2, llvmorg-16.0.0-rc1, llvmorg-17-init, llvmorg-15.0.7, llvmorg-15.0.6, llvmorg-15.0.5, llvmorg-15.0.4, llvmorg-15.0.3, llvmorg-15.0.2, llvmorg-15.0.1, llvmorg-15.0.0, llvmorg-15.0.0-rc3, llvmorg-15.0.0-rc2, llvmorg-15.0.0-rc1, llvmorg-16-init |
|
| #
3ee9a50a |
| 30-Jun-2022 |
Nikolas Klauser <[email protected]> |
[libc++] Implement P0618R0 (Deprecating <codecvt>)
Reviewed By: ldionne, #libc
Spies: cfe-commits, llvm-commits, libcxx-commits
Differential Revision: https://reviews.llvm.org/D127313
|
|
Revision tags: llvmorg-14.0.6, llvmorg-14.0.5, llvmorg-14.0.4, llvmorg-14.0.3, llvmorg-14.0.2, llvmorg-14.0.1, llvmorg-14.0.0, llvmorg-14.0.0-rc4, llvmorg-14.0.0-rc3, llvmorg-14.0.0-rc2, llvmorg-14.0.0-rc1, llvmorg-15-init |
|
| #
0f5d0d4e |
| 20-Jan-2022 |
Martin Storsjö <[email protected]> |
[libcxx] Fix the error checking for wctob_l, fixing locale narrow function on Windows
According to POSIX.1 (and Glibc docs, and Microsoft docs), the wctob function returns EOF on error, not WEOF. (A
[libcxx] Fix the error checking for wctob_l, fixing locale narrow function on Windows
According to POSIX.1 (and Glibc docs, and Microsoft docs), the wctob function returns EOF on error, not WEOF. (And wctob_l should consequently do the same.)
The previous misconception about what this function returns on errors seems to stem from incorrect documentation in macOS, stemming from BSD docs with the same issue. The corresponding documentation bug in FreeBSD was fixed in 2012 in https://github.com/freebsd/freebsd-src/commit/945aab90991bdaeabeb6ef25112975a96c01dd4e, but it hasn't been fixed for macOS yet.
The issue seems to only be a documentation issue; the implementation on macOS actually does use EOF, not WEOF: https://opensource.apple.com/source/Libc/Libc-1439.40.11/locale/FreeBSD/wctob.c.auto.html
On most Unices, EOF and WEOF are the same value, but on Windows, EOF is -1, while WEOF is (unsigned short)0xFFFF. By fixing this, two tests start passing on Windows.
Differential Revision: https://reviews.llvm.org/D120088
show more ...
|
| #
bbb0f2c7 |
| 11-Feb-2022 |
Arthur O'Dwyer <[email protected]> |
[libc++] Replace `#include ""` with `<>` in libcxx/src/. NFCI.
Our best guess is that the two syntaxes should have exactly equivalent effects, so, let's be consistent with what we do in libcxx/inclu
[libc++] Replace `#include ""` with `<>` in libcxx/src/. NFCI.
Our best guess is that the two syntaxes should have exactly equivalent effects, so, let's be consistent with what we do in libcxx/include/.
I've left `#include "include/x.h"` and `#include "../y.h"` alone because I'm less sure that they're interchangeable, and they aren't inconsistent with libcxx/include/ because libcxx/include/ never does that kind of thing.
Also, use the `_LIBCPP_PUSH_MACROS/POP_MACROS` dance for `<__undef_macros>`, even though it's technically unnecessary in a standalone .cpp file, just so we have consistently one way to do it.
Differential Revision: https://reviews.llvm.org/D119561
show more ...
|
| #
16667362 |
| 15-Feb-2022 |
Xing Xue <[email protected]> |
[libc++][AIX] Remove "pragma priority" from locale.cpp
Summary: The pragma priority guarded for AIX in locale.cpp is no longer useful and is ignored by the current AIX build compilers. This patch re
[libc++][AIX] Remove "pragma priority" from locale.cpp
Summary: The pragma priority guarded for AIX in locale.cpp is no longer useful and is ignored by the current AIX build compilers. This patch removes it from the source.
Reviewed by: ldionne, hubert.reinterpretcast, libc++
Differential Revision: https://reviews.llvm.org/D119765
show more ...
|
| #
a7c2a628 |
| 14-Feb-2022 |
Nikolas Klauser <[email protected]> |
[libc++] Guard warning pragmas
This makes the GCC output even cleaner!
Reviewed By: ldionne, #libc
Spies: mstorsjo, Quuxplusone, Mordante, libcxx-commits
Differential Revision: https://reviews.ll
[libc++] Guard warning pragmas
This makes the GCC output even cleaner!
Reviewed By: ldionne, #libc
Spies: mstorsjo, Quuxplusone, Mordante, libcxx-commits
Differential Revision: https://reviews.llvm.org/D119295
show more ...
|
| #
2a8f9a5e |
| 14-Feb-2022 |
Nikolas Klauser <[email protected]> |
[libc++] Implement P0627R6 (Function to mark unreachable code)
Reviewed By: ldionne, Quuxplusone, #libc
Spies: arichardson, mstorsjo, libcxx-commits, mgorny
Differential Revision: https://reviews.
[libc++] Implement P0627R6 (Function to mark unreachable code)
Reviewed By: ldionne, Quuxplusone, #libc
Spies: arichardson, mstorsjo, libcxx-commits, mgorny
Differential Revision: https://reviews.llvm.org/D119152
show more ...
|
|
Revision tags: llvmorg-13.0.1, llvmorg-13.0.1-rc3 |
|
| #
a1da7396 |
| 14-Jan-2022 |
Muiez Ahmed <[email protected]> |
[SystemZ][z/OS] ASCII/EBCDIC support with no coexistence
The aim of this patch is to break up the larger patch (https://reviews.llvm.org/D111323) to be more upstream friendly. In particular, this pa
[SystemZ][z/OS] ASCII/EBCDIC support with no coexistence
The aim of this patch is to break up the larger patch (https://reviews.llvm.org/D111323) to be more upstream friendly. In particular, this patch adds the char encoding sensitive changes but does not use inline namespaces as before. The use of namespaces to build both versions of the library, and localization of error messages will follow in a subsequent patch.
Differential Revision: https://reviews.llvm.org/D114813
show more ...
|
|
Revision tags: llvmorg-13.0.1-rc2, llvmorg-13.0.1-rc1 |
|
| #
049f6c29 |
| 18-Nov-2021 |
Muiez Ahmed <[email protected]> |
[libc++] Resolve missing table_size symbol
The aim of this patch is to resolve the missing `table_size` symbol (see reduced test case). That const variable is declared and defined in //libcxx/includ
[libc++] Resolve missing table_size symbol
The aim of this patch is to resolve the missing `table_size` symbol (see reduced test case). That const variable is declared and defined in //libcxx/include/locale//; however, the test case suggests that the symbol is missing. This is due to a C++ pitfall (highlighted [[ https://quuxplusone.github.io/blog/2020/09/19/value-or-pitfall/ | here ]]). In summary, assigning the reference of `table_size` doesn't enforce the const-ness and expects to find `table_size` in the DLL. The fix is to use `constexpr` or have an out-of-line definition in the src (for consistency).
Differential Revision: https://reviews.llvm.org/D110647
show more ...
|
| #
eb8650a7 |
| 17-Nov-2021 |
Louis Dionne <[email protected]> |
[runtimes][NFC] Remove filenames at the top of the license notice
We've stopped doing it in libc++ for a while now because these names would end up rotting as we move things around and copy/paste st
[runtimes][NFC] Remove filenames at the top of the license notice
We've stopped doing it in libc++ for a while now because these names would end up rotting as we move things around and copy/paste stuff. This cleans up all the existing files so as to stop the spreading as people copy-paste headers around.
show more ...
|
| #
5de4864f |
| 03-Nov-2021 |
Mark de Wever <[email protected]> |
[libc++] Improve no wide characters configuration.
When wide characters are supported libc++ manually translates a `narrow non-breaking space` and a `non-breaking space` to a space. This behaviour w
[libc++] Improve no wide characters configuration.
When wide characters are supported libc++ manually translates a `narrow non-breaking space` and a `non-breaking space` to a space. This behaviour wasn't available when wide characters were disabled. This enables an emulation for that configuration.
Updating the libc++ Docker image to Ubuntu Focal caused some breakage. This was temporary disabled in D112737. This re-enables four of these tests.
Reviewed By: ldionne, #libc
Differential Revision: https://reviews.llvm.org/D113133
show more ...
|
| #
1112b7ba |
| 12-Oct-2021 |
David Tenty <[email protected]> |
[libcxx][AIX] Explicitly include localedef.h in locale.cpp
This header was transitively included to provide the definition of __lc_ctype_ptr that we use on AIX, but that is fragile as it depends on
[libcxx][AIX] Explicitly include localedef.h in locale.cpp
This header was transitively included to provide the definition of __lc_ctype_ptr that we use on AIX, but that is fragile as it depends on the settings of compatibility macros, so we explicitly include it here to avoid that scenario.
Reviewed By: #libc, ldionne
Differential Revision: https://reviews.llvm.org/D111239
show more ...
|
|
Revision tags: llvmorg-13.0.0, llvmorg-13.0.0-rc4, llvmorg-13.0.0-rc3, llvmorg-13.0.0-rc2 |
|
| #
f4c1258d |
| 23-Aug-2021 |
Louis Dionne <[email protected]> |
[libc++] Add an option to disable wide character support in libc++
Some embedded platforms do not wish to support the C library functionality for handling wchar_t because they have no use for it. It
[libc++] Add an option to disable wide character support in libc++
Some embedded platforms do not wish to support the C library functionality for handling wchar_t because they have no use for it. It makes sense for libc++ to work properly on those platforms, so this commit adds a carve-out of functionality for wchar_t.
Unfortunately, unlike some other carve-outs (e.g. random device), this patch touches several parts of the library. However, despite the wide impact of this patch, I still think it is important to support this configuration since it makes it much simpler to port libc++ to some embedded platforms.
Differential Revision: https://reviews.llvm.org/D111265
show more ...
|
| #
f53fafba |
| 09-Sep-2021 |
Xing Xue <[email protected]> |
[libc++] Add missing short wchar handling for codecvt_utf8, codecvt_utf16 and codecvt_utf8_utf16
Summary: AIX have 2 byte wchar in 32 bit mode and 4 byte wchar in 64 bit mode. This patch add more mi
[libc++] Add missing short wchar handling for codecvt_utf8, codecvt_utf16 and codecvt_utf8_utf16
Summary: AIX have 2 byte wchar in 32 bit mode and 4 byte wchar in 64 bit mode. This patch add more missing short wchar handling under the existing _LIBCPP_SHORT_WCHAR macro.
Marked test case ctor_move.pass.cpp as XFAIL for 32-bit mode on AIX because UTF-8 constants used cannot be converted to 2-byte wchar (by xingxue).
Authored by: jasonliu
Reviewed by: ldionne, zibi, SeanP, libc++
Differential Revision: https://reviews.llvm.org/D100777
show more ...
|
| #
dd662f0f |
| 09-Sep-2021 |
Louis Dionne <[email protected]> |
[libc++][NFC] Fix typo in comment
|
| #
6382ec1a |
| 09-Sep-2021 |
Louis Dionne <[email protected]> |
[libc++][NFC] Reorder includes in locale.cpp
Also, include <type_traits> unconditionally. There really isn't much of a benefit in skipping it when exceptions are disabled.
|
| #
f40bba48 |
| 09-Sep-2021 |
Louis Dionne <[email protected]> |
[libc++][NFC] Move misplaced comment about implementation of ctype<wchar_t>
|
| #
a4cb5aef |
| 31-Aug-2021 |
Louis Dionne <[email protected]> |
[libc++] Remove some workarounds for unsupported GCC and Clang versions
There is a lot more we can do, in particular in <type_traits>, but this removes some workarounds that were gated on checking a
[libc++] Remove some workarounds for unsupported GCC and Clang versions
There is a lot more we can do, in particular in <type_traits>, but this removes some workarounds that were gated on checking a specific compiler version.
Differential Revision: https://reviews.llvm.org/D108923
show more ...
|
| #
706bd129 |
| 09-Aug-2021 |
Louis Dionne <[email protected]> |
[libc++][NFC] Remove workaround for variadic templates in C++03
That's not necessary anymore, since we always build the dylib with C++11 capabilities nowadays.
Differential Revision: https://review
[libc++][NFC] Remove workaround for variadic templates in C++03
That's not necessary anymore, since we always build the dylib with C++11 capabilities nowadays.
Differential Revision: https://reviews.llvm.org/D107772
show more ...
|
|
Revision tags: llvmorg-13.0.0-rc1, llvmorg-14-init, llvmorg-12.0.1, llvmorg-12.0.1-rc4, llvmorg-12.0.1-rc3, llvmorg-12.0.1-rc2 |
|
| #
b0cc7b53 |
| 01-Jun-2021 |
Martin Storsjö <[email protected]> |
[libcxx] Don't use an undefined '+' in unsigned/octal/hexal print formats
If building code like this:
unsigned long val = 1000; snprintf(buf, sizeof(buf), "%+lu", val);
with clang, clang w
[libcxx] Don't use an undefined '+' in unsigned/octal/hexal print formats
If building code like this:
unsigned long val = 1000; snprintf(buf, sizeof(buf), "%+lu", val);
with clang, clang warns
warning: flag '+' results in undefined behavior with 'u' conversion specifier [-Wformat]
Therefore, don't construct such undefined format strings. (There's no compiler warnings here, as the compiler can't inspect dynamically assembled format strings.)
This fixes number formatting in mingw-w64 if built with `__USE_MINGW_ANSI_STDIO` defined (there, the '+' flag causes a leading plus to be printed when formatting unsigned numbers too, while the '+' flag doesn't cause any extra leading plus in other stdio implementations).
Differential Revision: https://reviews.llvm.org/D103444
show more ...
|
|
Revision tags: llvmorg-12.0.1-rc1 |
|
| #
dafbfb1d |
| 06-May-2021 |
Martin Storsjö <[email protected]> |
[libcxx] Fix a case of -Wundef warnings. NFC.
Differential Revision: https://reviews.llvm.org/D101978
|
| #
0b10bb7d |
| 26-Apr-2021 |
Arthur O'Dwyer <[email protected]> |
[libc++] Move <__sso_allocator> out of include/ into src/. NFCI.
This allocator is not intended for libc++'s users to use; it's strictly an implementation detail of `src/locale.cpp`. So, move it to
[libc++] Move <__sso_allocator> out of include/ into src/. NFCI.
This allocator is not intended for libc++'s users to use; it's strictly an implementation detail of `src/locale.cpp`. So, move it to the `src/include/` directory.
Drive-by const-qualify its comparison operators.
For consistency with `__hidden_allocator` (defined in `src/thread.cpp`), do *not* remove it from "libcxx/lib/libc++unexp.exp", "libcxx/utils/symcheck-blacklists/linux_blacklist.txt", etc.
Differential Revision: https://reviews.llvm.org/D101293
show more ...
|
| #
5c40c994 |
| 19-Apr-2021 |
Arthur O'Dwyer <[email protected]> |
[libc++] s/_LIBCPP_NO_HAS_CHAR8_T/_LIBCPP_HAS_NO_CHAR8_T/g
This was raised in D94511.
Differential Revision: https://reviews.llvm.org/D100736
|
| #
4cd6ca10 |
| 20-Apr-2021 |
Louis Dionne <[email protected]> |
[libc++] NFC: Normalize `#endif //` comment indentation
|
|
Revision tags: llvmorg-12.0.0, llvmorg-12.0.0-rc5, llvmorg-12.0.0-rc4, llvmorg-12.0.0-rc3 |
|
| #
5601305f |
| 01-Mar-2021 |
Louis Dionne <[email protected]> |
[libc++/abi] Replace uses of _NOEXCEPT in src/ by noexcept
We always build the libraries in a Standard mode that supports noexcept, so there's no need to use the _NOEXCEPT macro.
Differential Revis
[libc++/abi] Replace uses of _NOEXCEPT in src/ by noexcept
We always build the libraries in a Standard mode that supports noexcept, so there's no need to use the _NOEXCEPT macro.
Differential Revision: https://reviews.llvm.org/D97700
show more ...
|
|
Revision tags: llvmorg-12.0.0-rc2, llvmorg-11.1.0, llvmorg-11.1.0-rc3 |
|
| #
b5175681 |
| 02-Feb-2021 |
Louis Dionne <[email protected]> |
[libc++] Rename include/support to include/__support
We do ship those headers, so the directory name should not be something that can potentially conflict with user-defined directories.
Differentia
[libc++] Rename include/support to include/__support
We do ship those headers, so the directory name should not be something that can potentially conflict with user-defined directories.
Differential Revision: https://reviews.llvm.org/D95956
show more ...
|