Skip to content

Commit 1fe4d43

Browse files
authored
Update LLVM (#2976)
Updates the reference for the STL's llvm-project submodule. Doing so necessitates changes to: * `basic_string::resize_and_overwrite` to enable a libc++ test to pass * `pointer_traits::pointer_to` so "fancy pointers" work with `constexpr basic_string` ([LWG-3454](https://cplusplus.github.io/LWG/issue3454)) * Additions and removals to the `expected_results.txt` and `skipped_tests.txt` files that control the external and internal libc++ test runners * Remove the workaround for [LLVM-53957](llvm/llvm-project#53957) which has been fixed * Sync `P0088R3_variant`, `P0220R1_any`, and `P220R1_optional` tests with their upstream libc++ sources Drive-by: * sync `tests/std/tests/P0088R3_variant/env.lst` with `usual_17_matrix.lst` Dual of MSVC-PR-428240.
1 parent 65aab97 commit 1fe4d43

File tree

11 files changed

+3100
-1181
lines changed

11 files changed

+3100
-1181
lines changed

llvm-project

stl/inc/xstring

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4306,7 +4306,9 @@ public:
43064306
});
43074307
}
43084308

4309-
const auto _Result_size = _STD move(_Op)(_Mypair._Myval2._Myptr(), _New_size);
4309+
auto _Arg_ptr = _Mypair._Myval2._Myptr();
4310+
auto _Arg_size = _New_size;
4311+
const auto _Result_size = _STD move(_Op)(_Arg_ptr, _Arg_size);
43104312
#if _CONTAINER_DEBUG_LEVEL > 0
43114313
_STL_VERIFY(_Result_size >= 0, "the returned size can't be smaller than 0");
43124314
_STL_VERIFY(_Result_size <= _New_size, "the returned size can't be greater than the passed size");

stl/inc/xutility

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,8 @@ struct pointer_traits {
249249

250250
using _Reftype = conditional_t<is_void_v<element_type>, char, element_type>&;
251251

252-
_NODISCARD static pointer pointer_to(_Reftype _Val) noexcept(noexcept(_Ty::pointer_to(_Val))) /* strengthened */ {
252+
_NODISCARD static _CONSTEXPR20 pointer pointer_to(_Reftype _Val) noexcept(
253+
noexcept(_Ty::pointer_to(_Val))) /* strengthened */ { // Per LWG-3454
253254
return _Ty::pointer_to(_Val);
254255
}
255256
};

tests/libcxx/expected_results.txt

Lines changed: 331 additions & 187 deletions
Large diffs are not rendered by default.

tests/libcxx/magic_comments.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,7 @@
55
// REQUIRES: c++11
66
// REQUIRES: c++11 || c++14
77
// REQUIRES: c++11 || c++14 || c++17 || c++20
8+
// REQUIRES: has-unix-headers
89
// REQUIRES: stdlib=libc++
910
// UNSUPPORTED: c++14, c++17, c++2a
11+
// UNSUPPORTED: msvc

tests/libcxx/skipped_tests.txt

Lines changed: 527 additions & 202 deletions
Large diffs are not rendered by default.

tests/libcxx/usual_matrix.lst

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@
33

44
RUNALL_INCLUDE ..\universal_prefix.lst
55
RUNALL_CROSSLIST
6-
# TRANSITION, LLVM-53957: _SILENCE_ALL_CXX23_DEPRECATION_WARNINGS belongs to llvm-project/libcxx/test/support/msvc_stdlib_force_include.h
7-
PM_CL="/EHsc /MTd /std:c++latest /permissive- /FImsvc_stdlib_force_include.h /wd4643 /D_STL_CALL_ABORT_INSTEAD_OF_INVALID_PARAMETER /D_SILENCE_ALL_CXX23_DEPRECATION_WARNINGS /D_SILENCE_NONFLOATING_COMPLEX_DEPRECATION_WARNING /D_USE_JOIN_VIEW_INPUT_RANGE"
6+
PM_CL="/EHsc /MTd /std:c++latest /permissive- /FImsvc_stdlib_force_include.h /wd4643 /D_STL_CALL_ABORT_INSTEAD_OF_INVALID_PARAMETER /D_USE_JOIN_VIEW_INPUT_RANGE"
87
RUNALL_CROSSLIST
98
PM_CL="/analyze:autolog- /Zc:preprocessor"
109
PM_COMPILER="clang-cl" PM_CL="-fno-ms-compatibility -fno-delayed-template-parsing"

tests/std/tests/P0088R3_variant/env.lst

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ PM_CL="/w14640 /Zc:threadSafeInit-"
1111
RUNALL_CROSSLIST
1212
PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive- /Zc:noexceptTypes-"
1313
PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++17 /DCONSTEXPR_NOTHROW /DTEST_PERMISSIVE"
14-
PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++20 /permissive-"
14+
PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++20"
1515
PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest /permissive-"
1616
PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive- /Zc:char8_t- /Zc:preprocessor"
1717
PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive- /Zc:wchar_t-"
@@ -32,7 +32,7 @@ PM_CL="/BE /c /EHsc /MD /std:c++latest /permissive-"
3232
PM_CL="/BE /c /EHsc /MDd /std:c++17 /permissive-"
3333
PM_CL="/BE /c /EHsc /MT /std:c++20 /permissive-"
3434
PM_CL="/BE /c /EHsc /MTd /std:c++latest /permissive-"
35-
PM_COMPILER="clang-cl" PM_CL="-fno-ms-compatibility -fno-delayed-template-parsing /EHsc /MD /std:c++20 /permissive-"
35+
PM_COMPILER="clang-cl" PM_CL="-fno-ms-compatibility -fno-delayed-template-parsing /EHsc /MD /std:c++latest /permissive-"
3636
PM_COMPILER="clang-cl" PM_CL="-fno-ms-compatibility -fno-delayed-template-parsing /EHsc /MDd /std:c++17 /DTEST_PERMISSIVE"
37-
PM_COMPILER="clang-cl" PM_CL="-fno-ms-compatibility -fno-delayed-template-parsing /EHsc /MT /std:c++20"
37+
PM_COMPILER="clang-cl" PM_CL="-fno-ms-compatibility -fno-delayed-template-parsing /EHsc /MT /std:c++20 /permissive-"
3838
PM_COMPILER="clang-cl" PM_CL="-fno-ms-compatibility -fno-delayed-template-parsing /EHsc /MTd /std:c++latest /permissive- /fp:strict"

0 commit comments

Comments
 (0)