On Tue, 15 Jul 2025 at 12:44, Tomasz Kaminski <tkami...@redhat.com> wrote:
>
>
>
> On Tue, Jul 15, 2025 at 1:35 PM Jonathan Wakely <jwak...@redhat.com> wrote:
>>
>> OK here are the details for all of the failing tests ...
>>
>> std/containers/views/mdspan/aligned_accessor/access.pass.cpp
>> std/containers/views/mdspan/aligned_accessor/ctor.conversion.from.default_accessor.pass.cpp
>> std/containers/views/mdspan/aligned_accessor/ctor.conversion.pass.cpp
>> std/containers/views/mdspan/aligned_accessor/ctor.default.pass.cpp
>> std/containers/views/mdspan/aligned_accessor/offset.pass.cpp
>> std/containers/views/mdspan/aligned_accessor/operator.conversion.to.default_accessor.pass.cpp
>> std/containers/views/mdspan/aligned_accessor/types.pass.cpp
>>
>> We don't support aligned_accessor yet.
>>
>> std/containers/views/mdspan/extents/ctor_from_array.pass.cpp
>> std/containers/views/mdspan/extents/ctor_from_span.pass.cpp
>>
>> These are both the same issue as Bug 121061:
>> static_assert(!std::is_constructible_v<std::dextents<int, 1>,
>> std::span<IntLike, 1>>);
>>
>> std/containers/views/mdspan/extents/dims.pass.cpp
>>
>> We don't support std:::dims
>>
>> std/containers/views/mdspan/layout_stride/is_exhaustive_corner_case.pass.cpp
>>
>> Somebody needs to analyze this one.
>
> This is most likely related to us implementing 
> https://cplusplus.github.io/LWG/issue4266.
>>
>>
>> std/containers/views/mdspan/layout_stride/properties.pass.cpp
>>
>> This looks similar, is_always_exhaustive() is giving the wrong answer
>> in some case.
>>
>> std/containers/views/mdspan/mdspan/ctor.default.pass.cpp
>>
>> This is checking for a noexcept default ctor.
>>
>> std/containers/views/mdspan/mdspan/ctor.dh_array.pass.cpp
>> std/containers/views/mdspan/mdspan/ctor.dh_span.pass.cpp
>>
>> These are Bug 121061
>>
>> std/containers/views/mdspan/mdspan/index_operator.pass.cpp
>>
>> Dunno what's happening here:
>>
>> std/containers/views/mdspan/mdspan/index_operator.pass.cpp:178:46:
>> in 'constexpr' expansion of
>> 'check_operator_constraints<std::mdspan<int, std::extents<i
>> nt, 18446744073709551615>, std::layout_left,
>> std::default_accessor<int> >, std::array<IntConfig<false, true, true,
>> true>, 1> >(std::mdspan<int, std::extents
>> <int, 18446744073709551615>, std::layout_left,
>> std::default_accessor<int> >(((int*)(& data)),
>> construct_mapping<std::extents<int, 18446744073709551615> >((s
>> td::layout_left(), std::layout_left()), std::extents<int,
>> 18446744073709551615>(1))), std::array<IntConfig<false, true, true,
>> true>, 1>{std::__array_traits<
>> IntConfig<false, true, true, true>, 1>::_Type{IntConfig<false, true,
>> true, true>{0}}})'
>> /home/jwakely/gcc/16/include/c++/16.0.0/mdspan:1234:25: error: no
>> match for 'operator[]' (operand types are 'const std::mdspan<int,
>> std::extents<int, 184467
>> 44073709551615>, std::layout_left, std::default_accessor<int> >' and
>> 'std::span<const IntConfig<false, true, true, true>, 1>')
>
> From docs:
> // IntConfig has configurable conversion properties: convert from const&, 
> convert from non-const, no-throw-ctor from const&, no-throw-ctor from 
> non-const
> This is again `_S_int_cast` not forwarding properly as noted in 121061.
>>
>> 1234 |         { return (*this)[span<const _OIndexType, rank()>(__indices)]; 
>> }
>>      |                  ~~~~~~~^
>>
>>
>> std/containers/views/mdspan/mdspan/properties.pass.cpp
>>
>> Many many failures like this:
>>
>> std/containers/views/mdspan/mdspan/properties.pass.cpp:146:17: error:
>> static assertion failed
>>  146 |   static_assert(noexcept(MDS::is_always_unique()));
>>      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
> These  are not noexcept in standard, so clang most likely made them 
> conditionally noexcept.
> We could do the same.
>
>> std/containers/views/mdspan/mdspan/properties.pass.cpp:146:17: note:
>> 'false' evaluates to false
>> std/containers/views/mdspan/mdspan/properties.pass.cpp:147:17: error:
>> static assertion failed
>>  147 |   static_assert(noexcept(MDS::is_always_exhaustive()));
>>      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> std/containers/views/mdspan/mdspan/properties.pass.cpp:147:17: note:
>> 'false' evaluates to false
>> std/containers/views/mdspan/mdspan/properties.pass.cpp:148:17: error:
>> static assertion failed
>>  148 |   static_assert(noexcept(MDS::is_always_strided()));
>>      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>

Thanks for looking into them, so it sounds like the failures are all
expected, and no conformance problems except for the one already in
bugzilla - nice work!

Reply via email to