[PATCH] libstdc++: Fix up submdspan std exports
Jakub Jelinek
jakub@redhat.com
Tue Feb 17 07:48:35 GMT 2026
On Mon, Feb 16, 2026 at 01:34:50PM +0100, Tomasz Kamiński wrote:
> This patch implements LWG 4491, addressing C++26 NB comments.
>
> libstdc++-v3/ChangeLog:
>
> * include/std/mdspan (std::submdspan_extents): Rename to...
> (std::subextents): Rename of submdspan_extents.
> (std::submdspan_canonicalize_slices): Rename to...
> (std::canonical_slices):
> * testsuite/23_containers/mdspan/submdspan/submdspan_canonicalize_slices.cc:
> Move to...
> * testsuite/23_containers/mdspan/submdspan/canonical_slices.cc: ...here.
> Updated calls to submdspan_canonicalize_slices.
> * testsuite/23_containers/mdspan/submdspan/submdspan_canonicalize_slices_neg.cc:
> Move to...
> * testsuite/23_containers/mdspan/submdspan/canonical_slices_neg.cc: ...here.
> Updated calls to submdspan_canonicalize_slices.
> * testsuite/23_containers/mdspan/submdspan/submdspan_extents.cc: Move to...
> * testsuite/23_containers/mdspan/submdspan/subextents.cc: ...here.
> Qualified and renamed calls to submdspan_extents.
> * testsuite/23_containers/mdspan/submdspan/submdspan_extents_neg.cc: Move to...
> * testsuite/23_containers/mdspan/submdspan/subextents_neg.cc: ...here.
> Qualified and renamed calls to submdspan_extents.
This broke
+FAIL: g++.dg/modules/compile-std1.C -std=c++26 (test for excess errors)
+FAIL: g++.dg/modules/compile-std1.C module-cmi std (gcm.cache/std.gcm)
+FAIL: g++.dg/modules/compile-std1.C module-cmi std.compat (gcm.cache/std.compat.gcm)
on all targets.
The following patch fixes it, tested on x86_64-linux, ok for trunk?
2026-02-17 Jakub Jelinek <jakub@redhat.com>
* src/c++23/std.cc.in (std::submdspan_canonicalize_slices,
std::submdspan_extents): Remove exports.
(std::canonical_slices, std::subextents): New exports.
--- libstdc++-v3/src/c++23/std.cc.in.jj 2026-01-29 21:56:30.963463807 +0100
+++ libstdc++-v3/src/c++23/std.cc.in 2026-02-17 08:40:55.256669866 +0100
@@ -1915,8 +1915,8 @@ export namespace std
using std::full_extent_t;
using std::full_extent;
using std::submdspan_mapping_result;
- using std::submdspan_canonicalize_slices;
- using std::submdspan_extents;
+ using std::canonical_slices;
+ using std::subextents;
using std::submdspan;
#endif
}
Jakub
More information about the Libstdc++
mailing list