Open wmaxey opened 3 years ago
We won't be able to fix this for 1.4.0, but I'll leave the issue on 1.4.0 so that we remember to release note it.
I updated the issue to encompass all the errors that remain and provide which compilers are known to be working.
Current status: We need to document known issues with MSVC. There isn't anything we can do to triage the ICEs on several years old compilers by now.
Build failures by VC version:
Executed with:
lit -sv .\test\std\utilities\tuple\ -Dcompute_archs=70
VS 2017 Compilers: 19.11, 19.12, 19.13, 19.14
Failing tests seem related to type conversions
Failing Tests (17):
* libcu++ :: std/utilities/tuple/tuple.tuple/tuple.assign/convert_copy.pass.cpp * libcu++ :: std/utilities/tuple/tuple.tuple/tuple.assign/convert_move.pass.cpp * libcu++ :: std/utilities/tuple/tuple.tuple/tuple.assign/copy.pass.cpp * libcu++ :: std/utilities/tuple/tuple.tuple/tuple.assign/move.pass.cpp * libcu++ :: std/utilities/tuple/tuple.tuple/tuple.cnstr/PR22806_constrain_tuple_like_ctor.pass.cpp * libcu++ :: std/utilities/tuple/tuple.tuple/tuple.cnstr/PR23256_constrain_UTypes_ctor.pass.cpp * libcu++ :: std/utilities/tuple/tuple.tuple/tuple.cnstr/UTypes.pass.cpp * libcu++ :: std/utilities/tuple/tuple.tuple/tuple.cnstr/alloc_move.pass.cpp * libcu++ :: std/utilities/tuple/tuple.tuple/tuple.cnstr/convert_copy.pass.cpp * libcu++ :: std/utilities/tuple/tuple.tuple/tuple.cnstr/move.pass.cpp * libcu++ :: std/utilities/tuple/tuple.tuple/tuple.creation/forward_as_tuple.pass.cpp * libcu++ :: std/utilities/tuple/tuple.tuple/tuple.creation/tuple_cat.pass.cpp * libcu++ :: std/utilities/tuple/tuple.tuple/tuple.elem/get_const_rv.pass.cpp * libcu++ :: std/utilities/tuple/tuple.tuple/tuple.elem/get_rv.pass.cpp * libcu++ :: std/utilities/tuple/tuple.tuple/tuple.elem/tuple.by.type.pass.cpp * libcu++ :: std/utilities/tuple/tuple.tuple/tuple.special/non_member_swap.pass.cpp * libcu++ :: std/utilities/tuple/tuple.tuple/tuple.swap/member_swap.pass.cppVS 2019 Compilers: 19.20, 19.21, 19.22, 19.23, 19.24, 19.25
Failing tests below are caused by an ICE, cause is still unknown, but I believe is related to this construct __tuple#L486
Failing Tests (55):
* libcu++ :: std/utilities/tuple/tuple.general/ignore.pass.cpp * libcu++ :: std/utilities/tuple/tuple.general/tuple.smartptr.pass.cpp * libcu++ :: std/utilities/tuple/tuple.tuple/TupleFunction.pass.cpp * libcu++ :: std/utilities/tuple/tuple.tuple/tuple.apply/apply.pass.cpp * libcu++ :: std/utilities/tuple/tuple.tuple/tuple.apply/apply_extended_types.pass.cpp * libcu++ :: std/utilities/tuple/tuple.tuple/tuple.assign/const_pair.pass.cpp * libcu++ :: std/utilities/tuple/tuple.tuple/tuple.assign/convert_copy.pass.cpp * libcu++ :: std/utilities/tuple/tuple.tuple/tuple.assign/convert_move.pass.cpp * libcu++ :: std/utilities/tuple/tuple.tuple/tuple.assign/copy.pass.cpp * libcu++ :: std/utilities/tuple/tuple.tuple/tuple.assign/move.pass.cpp * libcu++ :: std/utilities/tuple/tuple.tuple/tuple.assign/move_pair.pass.cpp * libcu++ :: std/utilities/tuple/tuple.tuple/tuple.cnstr/PR20855_tuple_ref_binding_diagnostics.pass.cpp * libcu++ :: std/utilities/tuple/tuple.tuple/tuple.cnstr/PR22806_constrain_tuple_like_ctor.pass.cpp * libcu++ :: std/utilities/tuple/tuple.tuple/tuple.cnstr/PR23256_constrain_UTypes_ctor.pass.cpp * libcu++ :: std/utilities/tuple/tuple.tuple/tuple.cnstr/UTypes.pass.cpp * libcu++ :: std/utilities/tuple/tuple.tuple/tuple.cnstr/alloc.pass.cpp * libcu++ :: std/utilities/tuple/tuple.tuple/tuple.cnstr/alloc_UTypes.pass.cpp * libcu++ :: std/utilities/tuple/tuple.tuple/tuple.cnstr/alloc_const_Types.pass.cpp * libcu++ :: std/utilities/tuple/tuple.tuple/tuple.cnstr/alloc_const_pair.pass.cpp * libcu++ :: std/utilities/tuple/tuple.tuple/tuple.cnstr/alloc_convert_copy.pass.cpp * libcu++ :: std/utilities/tuple/tuple.tuple/tuple.cnstr/alloc_convert_move.pass.cpp * libcu++ :: std/utilities/tuple/tuple.tuple/tuple.cnstr/alloc_copy.pass.cpp * libcu++ :: std/utilities/tuple/tuple.tuple/tuple.cnstr/alloc_move.pass.cpp * libcu++ :: std/utilities/tuple/tuple.tuple/tuple.cnstr/alloc_move_pair.pass.cpp * libcu++ :: std/utilities/tuple/tuple.tuple/tuple.cnstr/const_Types.pass.cpp * libcu++ :: std/utilities/tuple/tuple.tuple/tuple.cnstr/const_pair.pass.cpp * libcu++ :: std/utilities/tuple/tuple.tuple/tuple.cnstr/convert_copy.pass.cpp * libcu++ :: std/utilities/tuple/tuple.tuple/tuple.cnstr/convert_move.pass.cpp * libcu++ :: std/utilities/tuple/tuple.tuple/tuple.cnstr/copy.pass.cpp * libcu++ :: std/utilities/tuple/tuple.tuple/tuple.cnstr/default.pass.cpp * libcu++ :: std/utilities/tuple/tuple.tuple/tuple.cnstr/dtor.pass.cpp * libcu++ :: std/utilities/tuple/tuple.tuple/tuple.cnstr/move.pass.cpp * libcu++ :: std/utilities/tuple/tuple.tuple/tuple.cnstr/move_pair.pass.cpp * libcu++ :: std/utilities/tuple/tuple.tuple/tuple.cnstr/nothrow_cnstr.pass.cpp * libcu++ :: std/utilities/tuple/tuple.tuple/tuple.cnstr/tuple_array_template_depth.pass.cpp * libcu++ :: std/utilities/tuple/tuple.tuple/tuple.creation/forward_as_tuple.pass.cpp * libcu++ :: std/utilities/tuple/tuple.tuple/tuple.creation/make_tuple.pass.cpp * libcu++ :: std/utilities/tuple/tuple.tuple/tuple.creation/tie.pass.cpp * libcu++ :: std/utilities/tuple/tuple.tuple/tuple.creation/tuple_cat.pass.cpp * libcu++ :: std/utilities/tuple/tuple.tuple/tuple.elem/get_const.pass.cpp * libcu++ :: std/utilities/tuple/tuple.tuple/tuple.elem/get_const_rv.pass.cpp * libcu++ :: std/utilities/tuple/tuple.tuple/tuple.elem/get_non_const.pass.cpp * libcu++ :: std/utilities/tuple/tuple.tuple/tuple.elem/get_rv.pass.cpp * libcu++ :: std/utilities/tuple/tuple.tuple/tuple.elem/tuple.by.type.pass.cpp * libcu++ :: std/utilities/tuple/tuple.tuple/tuple.helper/tuple.include.array.pass.cpp * libcu++ :: std/utilities/tuple/tuple.tuple/tuple.helper/tuple_element.pass.cpp * libcu++ :: std/utilities/tuple/tuple.tuple/tuple.helper/tuple_size.pass.cpp * libcu++ :: std/utilities/tuple/tuple.tuple/tuple.helper/tuple_size_incomplete.pass.cpp * libcu++ :: std/utilities/tuple/tuple.tuple/tuple.helper/tuple_size_v.pass.cpp * libcu++ :: std/utilities/tuple/tuple.tuple/tuple.helper/tuple_size_value_sfinae.pass.cpp * libcu++ :: std/utilities/tuple/tuple.tuple/tuple.rel/eq.pass.cpp * libcu++ :: std/utilities/tuple/tuple.tuple/tuple.rel/lt.pass.cpp * libcu++ :: std/utilities/tuple/tuple.tuple/tuple.special/non_member_swap.pass.cpp * libcu++ :: std/utilities/tuple/tuple.tuple/tuple.swap/member_swap.pass.cpp * libcu++ :: std/utilities/tuple/tuple.tuple/tuple.traits/uses_allocator.pass.cppKnown good VS 2017:
Known good VS 2019: