diff --git a/llvm-project b/llvm-project index d66428cb995..a668ad92d5e 160000 --- a/llvm-project +++ b/llvm-project @@ -1 +1 @@ -Subproject commit d66428cb995c7a04ecb02951d5021d815fc02b2b +Subproject commit a668ad92d5e2161e07e1a435a19ea5072f52a989 diff --git a/stl/inc/atomic b/stl/inc/atomic index 78820eb37b3..349bcc92615 100644 --- a/stl/inc/atomic +++ b/stl/inc/atomic @@ -2465,25 +2465,6 @@ _NODISCARD bool atomic_is_lock_free(const atomic<_Ty>* _Mem) noexcept { return _Mem->is_lock_free(); } -template -_CXX20_DEPRECATE_ATOMIC_INIT void atomic_init( - atomic<_Ty>* const _Mem, const typename atomic<_Ty>::value_type _Value) noexcept { -#if 1 // TRANSITION, ABI - _CSTD memcpy(_STD addressof(_Mem->_Storage), _STD addressof(_Value), sizeof(_Ty)); -#else // ^^^ don't break ABI / break ABI vvv - _CSTD memcpy(_Mem, _STD addressof(_Value), sizeof(_Ty)); -#endif // TRANSITION, ABI - _CSTD memset(reinterpret_cast(_Mem) + sizeof(_Ty), 0, sizeof(atomic<_Ty>) - sizeof(_Ty)); -} - -template -_CXX20_DEPRECATE_ATOMIC_INIT void atomic_init( - volatile atomic<_Ty>* const _Mem, const typename atomic<_Ty>::value_type _Value) noexcept { - // NB: respecting volatility here appears unimplementable - static_assert(_Deprecate_non_lock_free_volatile<_Ty>, "Never fails"); - _STD atomic_init(const_cast*>(_Mem), _Value); -} - template void atomic_store(volatile atomic<_Ty>* const _Mem, const _Identity_t<_Ty> _Value) noexcept { static_assert(_Deprecate_non_lock_free_volatile<_Ty>, "Never fails"); @@ -2507,6 +2488,19 @@ void atomic_store_explicit(atomic<_Ty>* const _Mem, const _Identity_t<_Ty> _Valu _Mem->store(_Value, _Order); } +template +_CXX20_DEPRECATE_ATOMIC_INIT void atomic_init( + volatile atomic<_Ty>* const _Mem, const typename atomic<_Ty>::value_type _Value) noexcept { + static_assert(_Deprecate_non_lock_free_volatile<_Ty>, "Never fails"); + _STD atomic_store_explicit(_Mem, _Value, memory_order_relaxed); +} + +template +_CXX20_DEPRECATE_ATOMIC_INIT void atomic_init( + atomic<_Ty>* const _Mem, const typename atomic<_Ty>::value_type _Value) noexcept { + _STD atomic_store_explicit(_Mem, _Value, memory_order_relaxed); +} + template _NODISCARD _Ty atomic_load(const volatile atomic<_Ty>* const _Mem) noexcept { static_assert(_Deprecate_non_lock_free_volatile<_Ty>, "Never fails"); diff --git a/tests/libcxx/CMakeLists.txt b/tests/libcxx/CMakeLists.txt index 3272b95ff78..0aba3abeb45 100644 --- a/tests/libcxx/CMakeLists.txt +++ b/tests/libcxx/CMakeLists.txt @@ -11,6 +11,6 @@ configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg) -set(LIBCXX_LIT_CONFIG_MAP "map_config(\"${LIBCXX_SOURCE_DIR}/test/lit.cfg\", \"${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg\")\n") +set(LIBCXX_LIT_CONFIG_MAP "map_config(\"${LIBCXX_SOURCE_DIR}/test/lit.cfg.py\", \"${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg\")\n") set_property(GLOBAL APPEND_STRING PROPERTY STL_LIT_CONFIG_MAP ${LIBCXX_LIT_CONFIG_MAP}) set_property(GLOBAL APPEND PROPERTY STL_LIT_TEST_DIRS "${LIBCXX_SOURCE_DIR}/test/std") diff --git a/tests/libcxx/expected_results.txt b/tests/libcxx/expected_results.txt index 33115b7aed8..dfe944aef46 100644 --- a/tests/libcxx/expected_results.txt +++ b/tests/libcxx/expected_results.txt @@ -66,6 +66,12 @@ std/numerics/bit/bit.pow.two/log2p1.pass.cpp FAIL # test emits warning C4310: cast truncates constant value std/numerics/bit/bitops.rot/rotl.pass.cpp:0 FAIL +# libc++ doesn't yet implement P1754R1 or P1964R2, so it expects an old value for `__cpp_lib_concepts` +std/language.support/support.limits/support.limits.general/concepts.version.pass.cpp FAIL + +# libc++ doesn't yet implement P1001R2, so it expects an old value for `__cpp_lib_execution` +std/language.support/support.limits/support.limits.general/execution.version.pass.cpp FAIL + # *** INTERACTIONS WITH CONTEST / C1XX THAT UPSTREAM LIKELY WON'T FIX *** # Tracked by VSO-593630 " Enable libcxx filesystem tests" @@ -191,6 +197,7 @@ std/language.support/support.limits/support.limits.general/type_traits.version.p std/language.support/support.limits/support.limits.general/version.version.pass.cpp FAIL # Contest does not understand .sh tests, which must be run specially +std/namespace/addressable_functions.sh.cpp SKIPPED std/thread/thread.condition/thread.condition.condvarany/wait_terminates.sh.cpp SKIPPED # These tests set an allocator with a max_size() too small to default construct an unordered container @@ -215,8 +222,8 @@ std/containers/sequences/array/empty.verify.cpp SKIPPED std/containers/sequences/deque/deque.capacity/empty.verify.cpp SKIPPED std/containers/sequences/forwardlist/empty.verify.cpp SKIPPED std/containers/sequences/list/list.capacity/empty.verify.cpp SKIPPED -std/containers/sequences/vector/vector.capacity/empty.verify.cpp SKIPPED std/containers/sequences/vector.bool/empty.verify.cpp SKIPPED +std/containers/sequences/vector/vector.capacity/empty.verify.cpp SKIPPED std/containers/sequences/vector/vector.cons/copy.move_only.verify.cpp SKIPPED std/containers/unord/unord.map/empty.verify.cpp SKIPPED std/containers/unord/unord.multimap/empty.verify.cpp SKIPPED @@ -227,31 +234,55 @@ std/depr/depr.lib.binders/depr.lib.bind.2nd/bind2nd.depr_in_cxx11.verify.cpp SKI std/depr/depr.lib.binders/depr.lib.binder.1st/binder1st.depr_in_cxx11.verify.cpp SKIPPED std/depr/depr.lib.binders/depr.lib.binder.2nd/binder2nd.depr_in_cxx11.verify.cpp SKIPPED std/input.output/filesystems/class.path/path.member/path.decompose/empty.verify.cpp SKIPPED +std/input.output/iostream.format/input.streams/istream.rvalue/not_istreamable.verify.cpp SKIPPED +std/input.output/iostream.format/output.streams/ostream.rvalue/not_ostreamable.verify.cpp SKIPPED +std/input.output/iostream.format/quoted.manip/quoted_char.verify.cpp SKIPPED +std/input.output/iostream.format/quoted.manip/quoted_traits.verify.cpp SKIPPED std/iterators/iterator.container/empty.array.verify.cpp SKIPPED std/iterators/iterator.container/empty.container.verify.cpp SKIPPED std/iterators/iterator.container/empty.initializer_list.verify.cpp SKIPPED -std/language.support/support.dynamic/new.delete/new.delete.array/new_size.verify.cpp SKIPPED -std/language.support/support.dynamic/new.delete/new.delete.array/new_size_align.verify.cpp SKIPPED +std/language.support/cmp/cmp.categories.pre/zero_type.verify.cpp SKIPPED std/language.support/support.dynamic/new.delete/new.delete.array/new_size_align_nothrow.verify.cpp SKIPPED +std/language.support/support.dynamic/new.delete/new.delete.array/new_size_align.verify.cpp SKIPPED std/language.support/support.dynamic/new.delete/new.delete.array/new_size_nothrow.verify.cpp SKIPPED +std/language.support/support.dynamic/new.delete/new.delete.array/new_size.verify.cpp SKIPPED std/language.support/support.dynamic/new.delete/new.delete.placement/new_array_ptr.verify.cpp SKIPPED std/language.support/support.dynamic/new.delete/new.delete.placement/new_ptr.verify.cpp SKIPPED -std/language.support/support.dynamic/new.delete/new.delete.single/new_size.verify.cpp SKIPPED -std/language.support/support.dynamic/new.delete/new.delete.single/new_size_align.verify.cpp SKIPPED std/language.support/support.dynamic/new.delete/new.delete.single/new_size_align_nothrow.verify.cpp SKIPPED +std/language.support/support.dynamic/new.delete/new.delete.single/new_size_align.verify.cpp SKIPPED std/language.support/support.dynamic/new.delete/new.delete.single/new_size_nothrow.verify.cpp SKIPPED +std/language.support/support.dynamic/new.delete/new.delete.single/new_size.verify.cpp SKIPPED std/language.support/support.dynamic/ptr.launder/launder.nodiscard.verify.cpp SKIPPED +std/numerics/numbers/illformed.verify.cpp SKIPPED std/re/re.results/re.results.size/empty.verify.cpp SKIPPED std/strings/basic.string/string.capacity/empty.verify.cpp SKIPPED std/strings/string.view/string.view.capacity/empty.verify.cpp SKIPPED std/thread/futures/futures.async/async.verify.cpp SKIPPED -std/utilities/allocator.adaptor/allocator.adaptor.members/allocate_size.verify.cpp SKIPPED +std/thread/futures/futures.promise/copy_assign.verify.cpp SKIPPED +std/thread/futures/futures.promise/copy_ctor.verify.cpp SKIPPED +std/thread/futures/futures.unique_future/copy_assign.verify.cpp SKIPPED +std/thread/futures/futures.unique_future/copy_ctor.verify.cpp SKIPPED std/utilities/allocator.adaptor/allocator.adaptor.members/allocate_size_hint.verify.cpp SKIPPED +std/utilities/allocator.adaptor/allocator.adaptor.members/allocate_size.verify.cpp SKIPPED +std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/alloc_F.verify.cpp SKIPPED +std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/alloc_function.verify.cpp SKIPPED +std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/alloc_nullptr.verify.cpp SKIPPED +std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/alloc_rfunction.verify.cpp SKIPPED +std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/alloc.verify.cpp SKIPPED +std/utilities/function.objects/negators/binary_negate.depr_in_cxx17.verify.cpp SKIPPED std/utilities/function.objects/negators/not1.depr_in_cxx17.verify.cpp SKIPPED std/utilities/function.objects/negators/not2.depr_in_cxx17.verify.cpp SKIPPED +std/utilities/function.objects/negators/unary_negate.depr_in_cxx17.verify.cpp SKIPPED std/utilities/memory/allocator.traits/allocator.traits.members/allocate.verify.cpp SKIPPED +std/utilities/memory/default.allocator/allocator_types.deprecated_in_cxx17.verify.cpp SKIPPED +std/utilities/memory/default.allocator/allocator_types.removed_in_cxx20.verify.cpp SKIPPED +std/utilities/memory/default.allocator/allocator_void.deprecated_in_cxx17.verify.cpp SKIPPED +std/utilities/memory/default.allocator/allocator.members/allocate.constexpr.size.verify.cpp SKIPPED std/utilities/memory/default.allocator/allocator.members/allocate.verify.cpp SKIPPED +# GH-1382: Our machinery doesn't understand compile-only `.compile.pass.cpp` tests +std/strings/string.view/string.view.io/stream_insert_decl_present.compile.pass.cpp SKIPPED + # *** MISSING STL FEATURES *** # C++20 P0355R7 " Calendars And Time Zones" @@ -464,6 +495,21 @@ std/utilities/variant/variant.variant/variant.ctor/T.pass.cpp FAIL # C++20 P0768R1 "Library Support for the Spaceship (Comparison) Operator" std/language.support/support.limits/support.limits.general/compare.version.pass.cpp FAIL +# C++20 P0784R7 "More constexpr containers" +std/utilities/memory/allocator.traits/allocator.traits.members/allocate.pass.cpp FAIL +std/utilities/memory/allocator.traits/allocator.traits.members/allocate_hint.pass.cpp FAIL +std/utilities/memory/allocator.traits/allocator.traits.members/construct.pass.cpp FAIL +std/utilities/memory/allocator.traits/allocator.traits.members/deallocate.pass.cpp FAIL +std/utilities/memory/allocator.traits/allocator.traits.members/destroy.pass.cpp FAIL +std/utilities/memory/allocator.traits/allocator.traits.members/max_size.pass.cpp FAIL +std/utilities/memory/allocator.traits/allocator.traits.members/select_on_container_copy_construction.pass.cpp FAIL +std/utilities/memory/default.allocator/allocator.globals/eq.pass.cpp FAIL +std/utilities/memory/default.allocator/allocator.members/allocate.pass.cpp FAIL +std/utilities/memory/specialized.algorithms/specialized.construct/construct_at.pass.cpp FAIL +std/utilities/memory/specialized.algorithms/specialized.destroy/destroy.pass.cpp FAIL +std/utilities/memory/specialized.algorithms/specialized.destroy/destroy_at.pass.cpp FAIL +std/utilities/memory/specialized.algorithms/specialized.destroy/destroy_n.pass.cpp FAIL + # C++20 P0896R4 "" std/language.support/support.limits/support.limits.general/algorithm.version.pass.cpp FAIL std/language.support/support.limits/support.limits.general/functional.version.pass.cpp FAIL @@ -494,6 +540,11 @@ std/utilities/meta/meta.unary/meta.unary.prop/is_constructible.pass.cpp:0 FAIL std/containers/views/span.cons/ptr_len.pass.cpp:0 FAIL std/containers/views/span.cons/ptr_ptr.pass.cpp:0 FAIL +# VSO-1168723 "Implicit copy assignment incorrectly not constexpr when subobject has explicit constexpr copy constructor" +std/utilities/utility/pairs/pairs.pair/assign_pair.pass.cpp:0 FAIL +std/utilities/utility/pairs/pairs.pair/assign_rv_pair.pass.cpp:0 FAIL +std/utilities/utility/pairs/pairs.pair/assign_rv_pair_U_V.pass.cpp:0 FAIL + # *** CLANG COMPILER BUGS *** # LLVM-33230 "Clang on Windows should define __STDCPP_THREADS__ to be 1" @@ -503,11 +554,6 @@ std/thread/macro.pass.cpp:1 FAIL std/depr/depr.c.headers/tgmath_h.pass.cpp:1 FAIL -# *** CLANG FEATURES NOT YET IMPLEMENTED *** -# P0960R3 "Allow initializing aggregates from a parenthesized list of values" -std/utilities/tuple/tuple.tuple/tuple.creation/tuple_cat.pass.cpp:0 FAIL - - # *** CLANG ISSUES, NOT YET ANALYZED *** # Clang doesn't enable sized deallocation by default. Should we add -fsized-deallocation or do something else? std/language.support/support.dynamic/new.delete/new.delete.array/sized_delete_array_fsizeddeallocation.pass.cpp:1 FAIL @@ -617,6 +663,10 @@ std/language.support/support.runtime/cstdlib.pass.cpp FAIL std/thread/thread.threads/thread.thread.class/thread.thread.assign/move2.pass.cpp SKIPPED std/thread/thread.threads/thread.thread.class/thread.thread.member/join.pass.cpp SKIPPED +# OS-29877133 "LDBL_DECIMAL_DIG missing from " +std/depr/depr.c.headers/float_h.pass.cpp:0 FAIL +std/language.support/support.limits/c.limits/cfloat.pass.cpp:0 FAIL + # *** LIKELY BOGUS TESTS *** # "error: _LIBCPP_VERSION not defined" @@ -746,8 +796,6 @@ std/containers/sequences/array/array.creation/to_array.pass.cpp:0 FAIL std/iterators/predef.iterators/insert.iterators/back.insert.iterator/types.pass.cpp FAIL std/iterators/predef.iterators/insert.iterators/front.insert.iterator/types.pass.cpp FAIL std/iterators/predef.iterators/insert.iterators/insert.iterator/types.pass.cpp FAIL -std/iterators/stream.iterators/ostream.iterator/types.pass.cpp FAIL -std/iterators/stream.iterators/ostreambuf.iterator/types.pass.cpp FAIL # Tests emit warning C4244: 'argument': conversion from 'T' to 'const std::complex::_Ty', possible loss of data std/numerics/complex.number/cmplx.over/conj.pass.cpp:0 FAIL diff --git a/tests/libcxx/lit.cfg b/tests/libcxx/lit.cfg new file mode 100644 index 00000000000..44b72cde9e6 --- /dev/null +++ b/tests/libcxx/lit.cfg @@ -0,0 +1,29 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception + +from pathlib import Path +import importlib +import site + +site.addsitedir(str(Path(__file__).parents[1] / "utils")) +site.addsitedir(str(Path(__file__).parent / "tests")) + +config.name = 'libc++' +config.suffixes = {".pass.cpp", ".fail.cpp"} + +if config.test_source_root is None: + config.test_source_root = str(Path(__file__).parent) + +config.test_exec_root = getattr(config, 'test_exec_root', None) + +if not config.test_exec_root: + import tempfile + config.test_exec_root = tempfile.mkdtemp(prefix=config.name + '-testsuite-') + lit_config.note('Creating temporary directory for tests: %s' % config.test_exec_root) + +config_module_name = getattr(config, 'config_module_name', 'stl.test.config') +config_module = importlib.import_module(config_module_name) + +configuration = config_module.Configuration(lit_config, config) +configuration.configure() +config.test_format = configuration.get_test_format() diff --git a/tests/libcxx/lit.site.cfg.in b/tests/libcxx/lit.site.cfg.in index 473dace7e7c..c3eea2c29b6 100644 --- a/tests/libcxx/lit.site.cfg.in +++ b/tests/libcxx/lit.site.cfg.in @@ -18,11 +18,8 @@ config.msvc_toolset_libs_root = "@TOOLSET_LIB@" config.stl_build_root = "@STL_BUILD_ROOT@" config.stl_src_root = "@STL_SOURCE_DIR@" config.target_arch = "@VCLIBS_TARGET_ARCHITECTURE@" +config.test_exec_root = "@LIBCXX_TEST_OUTPUT_DIR@" +config.test_source_root = "@LIBCXX_SOURCE_DIR@/test" config.test_subdirs = ["@LIBCXX_SOURCE_DIR@/test/std"] -lit_config.params['use_old_format'] = True -config.loaded_site_config = True -lit_config.load_config(config, "@LIBCXX_SOURCE_DIR@/test/lit.cfg") - -config.suffixes = [".pass.cpp", ".fail.cpp"] -config.test_exec_root = "@LIBCXX_TEST_OUTPUT_DIR@" +lit_config.load_config(config, "@CMAKE_CURRENT_SOURCE_DIR@/lit.cfg") diff --git a/tests/libcxx/skipped_tests.txt b/tests/libcxx/skipped_tests.txt index 4239de46b5b..672b761590c 100644 --- a/tests/libcxx/skipped_tests.txt +++ b/tests/libcxx/skipped_tests.txt @@ -66,6 +66,12 @@ numerics\bit\bit.pow.two\log2p1.pass.cpp # test emits warning C4310: cast truncates constant value numerics\bit\bitops.rot\rotl.pass.cpp +# libc++ doesn't yet implement P1754R1 or P1964R2, so it expects an old value for `__cpp_lib_concepts` +language.support\support.limits\support.limits.general\concepts.version.pass.cpp + +# libc++ doesn't yet implement P1001R2, so it expects an old value for `__cpp_lib_execution` +language.support\support.limits\support.limits.general\execution.version.pass.cpp + # *** INTERACTIONS WITH CONTEST / C1XX THAT UPSTREAM LIKELY WON'T FIX *** # Tracked by VSO-593630 " Enable libcxx filesystem tests" @@ -191,6 +197,7 @@ language.support\support.limits\support.limits.general\type_traits.version.pass. language.support\support.limits\support.limits.general\version.version.pass.cpp # Contest does not understand .sh tests, which must be run specially +namespace\addressable_functions.sh.cpp thread\thread.condition\thread.condition.condvarany\wait_terminates.sh.cpp # These tests set an allocator with a max_size() too small to default construct an unordered container @@ -215,8 +222,8 @@ containers\sequences\array\empty.verify.cpp containers\sequences\deque\deque.capacity\empty.verify.cpp containers\sequences\forwardlist\empty.verify.cpp containers\sequences\list\list.capacity\empty.verify.cpp -containers\sequences\vector\vector.capacity\empty.verify.cpp containers\sequences\vector.bool\empty.verify.cpp +containers\sequences\vector\vector.capacity\empty.verify.cpp containers\sequences\vector\vector.cons\copy.move_only.verify.cpp containers\unord\unord.map\empty.verify.cpp containers\unord\unord.multimap\empty.verify.cpp @@ -227,31 +234,55 @@ depr\depr.lib.binders\depr.lib.bind.2nd\bind2nd.depr_in_cxx11.verify.cpp depr\depr.lib.binders\depr.lib.binder.1st\binder1st.depr_in_cxx11.verify.cpp depr\depr.lib.binders\depr.lib.binder.2nd\binder2nd.depr_in_cxx11.verify.cpp input.output\filesystems\class.path\path.member\path.decompose\empty.verify.cpp +input.output\iostream.format\input.streams\istream.rvalue\not_istreamable.verify.cpp +input.output\iostream.format\output.streams\ostream.rvalue\not_ostreamable.verify.cpp +input.output\iostream.format\quoted.manip\quoted_char.verify.cpp +input.output\iostream.format\quoted.manip\quoted_traits.verify.cpp iterators\iterator.container\empty.array.verify.cpp iterators\iterator.container\empty.container.verify.cpp iterators\iterator.container\empty.initializer_list.verify.cpp -language.support\support.dynamic\new.delete\new.delete.array\new_size.verify.cpp -language.support\support.dynamic\new.delete\new.delete.array\new_size_align.verify.cpp +language.support\cmp\cmp.categories.pre\zero_type.verify.cpp language.support\support.dynamic\new.delete\new.delete.array\new_size_align_nothrow.verify.cpp +language.support\support.dynamic\new.delete\new.delete.array\new_size_align.verify.cpp language.support\support.dynamic\new.delete\new.delete.array\new_size_nothrow.verify.cpp +language.support\support.dynamic\new.delete\new.delete.array\new_size.verify.cpp language.support\support.dynamic\new.delete\new.delete.placement\new_array_ptr.verify.cpp language.support\support.dynamic\new.delete\new.delete.placement\new_ptr.verify.cpp -language.support\support.dynamic\new.delete\new.delete.single\new_size.verify.cpp -language.support\support.dynamic\new.delete\new.delete.single\new_size_align.verify.cpp language.support\support.dynamic\new.delete\new.delete.single\new_size_align_nothrow.verify.cpp +language.support\support.dynamic\new.delete\new.delete.single\new_size_align.verify.cpp language.support\support.dynamic\new.delete\new.delete.single\new_size_nothrow.verify.cpp +language.support\support.dynamic\new.delete\new.delete.single\new_size.verify.cpp language.support\support.dynamic\ptr.launder\launder.nodiscard.verify.cpp +numerics\numbers\illformed.verify.cpp re\re.results\re.results.size\empty.verify.cpp strings\basic.string\string.capacity\empty.verify.cpp strings\string.view\string.view.capacity\empty.verify.cpp thread\futures\futures.async\async.verify.cpp -utilities\allocator.adaptor\allocator.adaptor.members\allocate_size.verify.cpp +thread\futures\futures.promise\copy_assign.verify.cpp +thread\futures\futures.promise\copy_ctor.verify.cpp +thread\futures\futures.unique_future\copy_assign.verify.cpp +thread\futures\futures.unique_future\copy_ctor.verify.cpp utilities\allocator.adaptor\allocator.adaptor.members\allocate_size_hint.verify.cpp +utilities\allocator.adaptor\allocator.adaptor.members\allocate_size.verify.cpp +utilities\function.objects\func.wrap\func.wrap.func\func.wrap.func.con\alloc_F.verify.cpp +utilities\function.objects\func.wrap\func.wrap.func\func.wrap.func.con\alloc_function.verify.cpp +utilities\function.objects\func.wrap\func.wrap.func\func.wrap.func.con\alloc_nullptr.verify.cpp +utilities\function.objects\func.wrap\func.wrap.func\func.wrap.func.con\alloc_rfunction.verify.cpp +utilities\function.objects\func.wrap\func.wrap.func\func.wrap.func.con\alloc.verify.cpp +utilities\function.objects\negators\binary_negate.depr_in_cxx17.verify.cpp utilities\function.objects\negators\not1.depr_in_cxx17.verify.cpp utilities\function.objects\negators\not2.depr_in_cxx17.verify.cpp +utilities\function.objects\negators\unary_negate.depr_in_cxx17.verify.cpp utilities\memory\allocator.traits\allocator.traits.members\allocate.verify.cpp +utilities\memory\default.allocator\allocator_types.deprecated_in_cxx17.verify.cpp +utilities\memory\default.allocator\allocator_types.removed_in_cxx20.verify.cpp +utilities\memory\default.allocator\allocator_void.deprecated_in_cxx17.verify.cpp +utilities\memory\default.allocator\allocator.members\allocate.constexpr.size.verify.cpp utilities\memory\default.allocator\allocator.members\allocate.verify.cpp +# GH-1382: Our machinery doesn't understand compile-only `.compile.pass.cpp` tests +strings\string.view\string.view.io\stream_insert_decl_present.compile.pass.cpp + # *** MISSING STL FEATURES *** # C++20 P0355R7 " Calendars And Time Zones" @@ -464,6 +495,21 @@ utilities\variant\variant.variant\variant.ctor\T.pass.cpp # C++20 P0768R1 "Library Support for the Spaceship (Comparison) Operator" language.support\support.limits\support.limits.general\compare.version.pass.cpp +# C++20 P0784R7 "More constexpr containers" +utilities\memory\allocator.traits\allocator.traits.members\allocate.pass.cpp +utilities\memory\allocator.traits\allocator.traits.members\allocate_hint.pass.cpp +utilities\memory\allocator.traits\allocator.traits.members\construct.pass.cpp +utilities\memory\allocator.traits\allocator.traits.members\deallocate.pass.cpp +utilities\memory\allocator.traits\allocator.traits.members\destroy.pass.cpp +utilities\memory\allocator.traits\allocator.traits.members\max_size.pass.cpp +utilities\memory\allocator.traits\allocator.traits.members\select_on_container_copy_construction.pass.cpp +utilities\memory\default.allocator\allocator.globals\eq.pass.cpp +utilities\memory\default.allocator\allocator.members\allocate.pass.cpp +utilities\memory\specialized.algorithms\specialized.construct\construct_at.pass.cpp +utilities\memory\specialized.algorithms\specialized.destroy\destroy.pass.cpp +utilities\memory\specialized.algorithms\specialized.destroy\destroy_at.pass.cpp +utilities\memory\specialized.algorithms\specialized.destroy\destroy_n.pass.cpp + # C++20 P0896R4 "" language.support\support.limits\support.limits.general\algorithm.version.pass.cpp language.support\support.limits\support.limits.general\functional.version.pass.cpp @@ -494,6 +540,11 @@ utilities\meta\meta.unary\meta.unary.prop\is_constructible.pass.cpp containers\views\span.cons\ptr_len.pass.cpp containers\views\span.cons\ptr_ptr.pass.cpp +# VSO-1168723 "Implicit copy assignment incorrectly not constexpr when subobject has explicit constexpr copy constructor" +utilities\utility\pairs\pairs.pair\assign_pair.pass.cpp +utilities\utility\pairs\pairs.pair\assign_rv_pair.pass.cpp +utilities\utility\pairs\pairs.pair\assign_rv_pair_U_V.pass.cpp + # *** CLANG COMPILER BUGS *** # LLVM-33230 "Clang on Windows should define __STDCPP_THREADS__ to be 1" @@ -503,11 +554,6 @@ thread\macro.pass.cpp depr\depr.c.headers\tgmath_h.pass.cpp -# *** CLANG FEATURES NOT YET IMPLEMENTED *** -# P0960R3 "Allow initializing aggregates from a parenthesized list of values" -utilities\tuple\tuple.tuple\tuple.creation\tuple_cat.pass.cpp - - # *** CLANG ISSUES, NOT YET ANALYZED *** # Clang doesn't enable sized deallocation by default. Should we add -fsized-deallocation or do something else? language.support\support.dynamic\new.delete\new.delete.array\sized_delete_array_fsizeddeallocation.pass.cpp @@ -617,6 +663,10 @@ language.support\support.runtime\cstdlib.pass.cpp thread\thread.threads\thread.thread.class\thread.thread.assign\move2.pass.cpp thread\thread.threads\thread.thread.class\thread.thread.member\join.pass.cpp +# OS-29877133 "LDBL_DECIMAL_DIG missing from " +depr\depr.c.headers\float_h.pass.cpp +language.support\support.limits\c.limits\cfloat.pass.cpp + # *** LIKELY BOGUS TESTS *** # "error: _LIBCPP_VERSION not defined" @@ -746,8 +796,6 @@ containers\sequences\array\array.creation\to_array.pass.cpp iterators\predef.iterators\insert.iterators\back.insert.iterator\types.pass.cpp iterators\predef.iterators\insert.iterators\front.insert.iterator\types.pass.cpp iterators\predef.iterators\insert.iterators\insert.iterator\types.pass.cpp -iterators\stream.iterators\ostream.iterator\types.pass.cpp -iterators\stream.iterators\ostreambuf.iterator\types.pass.cpp # Tests emit warning C4244: 'argument': conversion from 'T' to 'const std::complex::_Ty', possible loss of data numerics\complex.number\cmplx.over\conj.pass.cpp