On Wed, 16 Jul 2025 at 15:00, Luc Grosheintz <luc.groshei...@gmail.com> wrote:
>
>
>
> On 7/15/25 13:43, Tomasz Kaminski 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
> >>
>
> Locally, this is ready. What's the PR number I should use? This is the
> link to the paper:
> https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2024/p2389r2.html

We don't have a bugzilla PR for this, which is fine, we don't need one.

I created the mdspan PR to track that it was a piece of work we needed
to do at some point. If you've already done the work and have a patch,
that's great. There's no need to create a PR to track that we will
need to do something which is already done :-)

So just don't bother mentioning any bugzilla PR in the commit.

>
> >>
> >> 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
>
> I've submitted patches for this here:
> https://gcc.gnu.org/pipermail/libstdc++/2025-July/062612.html
>
> >>
> >> 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.
>
> This looks like it should also be fixed by the same
> patch series mentioned above.
>
> >
> >> 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.
>
> I'll prepare patches for this.
>
> >
> > 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()));
> >>       |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> >>
> >>
> >
>

Reply via email to