[PATCH 1/4] libstdc++: Reduce the size of an unbounded iota_view
Jonathan Wakely
jwakely@redhat.com
Mon Sep 28 09:31:55 GMT 2020
On 28/09/20 00:48 -0400, Patrick Palka via Libstdc++ wrote:
>libstdc++-v3/ChangeLog:
>
> * include/std/ranges (iota_view::_M_bound): Give it
> [[no_unique_address]].
> * testsuite/std/ranges/iota/iota_view.cc: Check that an
> unbounded iota_view has minimal size.
OK.
> libstdc++-v3/include/std/ranges | 2 +-
> libstdc++-v3/testsuite/std/ranges/iota/iota_view.cc | 3 +++
> 2 files changed, 4 insertions(+), 1 deletion(-)
>
>diff --git a/libstdc++-v3/include/std/ranges b/libstdc++-v3/include/std/ranges
>index ed04fa0001d..964a2b616a6 100644
>--- a/libstdc++-v3/include/std/ranges
>+++ b/libstdc++-v3/include/std/ranges
>@@ -511,7 +511,7 @@ namespace ranges
> };
>
> _Winc _M_value = _Winc();
>- _Bound _M_bound = _Bound();
>+ [[no_unique_address]] _Bound _M_bound = _Bound();
>
> public:
> iota_view() = default;
>diff --git a/libstdc++-v3/testsuite/std/ranges/iota/iota_view.cc b/libstdc++-v3/testsuite/std/ranges/iota/iota_view.cc
>index 65d166fbd3b..8a33e10a093 100644
>--- a/libstdc++-v3/testsuite/std/ranges/iota/iota_view.cc
>+++ b/libstdc++-v3/testsuite/std/ranges/iota/iota_view.cc
>@@ -77,6 +77,9 @@ test04()
> VERIFY( it == v.end() );
> }
>
>+// Verify we optimize away the 'bound' data member of an unbounded iota_view.
>+static_assert(sizeof(std::ranges::iota_view<char>) == 1);
>+
> int
> main()
> {
>--
>2.28.0.618.g9bc233ae1c
>
More information about the Gcc-patches
mailing list