From 9a1cb52cae2d48d2fc18d01b534bf4e3203f0cc1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arsen=20Arsenovi=C4=87?= <arsen@aarsen.me> Date: Tue, 24 Dec 2024 12:50:28 +0100 Subject: [PATCH] libstdc++: add missing return in generator assignment operator [PR118196] libstdc++-v3/ChangeLog: PR libstdc++/118196 * include/std/generator (generator::operator=(generator)): Add missing 'return *this;'. * testsuite/24_iterators/range_generators/pr118196.cc: New test. --- libstdc++-v3/include/std/generator | 1 + .../24_iterators/range_generators/pr118196.cc | 13 +++++++++++++ 2 files changed, 14 insertions(+) create mode 100644 libstdc++-v3/testsuite/24_iterators/range_generators/pr118196.cc diff --git a/libstdc++-v3/include/std/generator b/libstdc++-v3/include/std/generator index 3a19d535ef86..7d7e9b708657 100644 --- a/libstdc++-v3/include/std/generator +++ b/libstdc++-v3/include/std/generator @@ -717,6 +717,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION { swap(__other._M_coro, this->_M_coro); swap(__other._M_began, this->_M_began); + return *this; } _Iterator diff --git a/libstdc++-v3/testsuite/24_iterators/range_generators/pr118196.cc b/libstdc++-v3/testsuite/24_iterators/range_generators/pr118196.cc new file mode 100644 index 000000000000..ae161df2a4a6 --- /dev/null +++ b/libstdc++-v3/testsuite/24_iterators/range_generators/pr118196.cc @@ -0,0 +1,13 @@ +// { dg-do compile { target c++23 } } +#include "<generator>" + +std::generator<int> +generator(); + +void +try_reassigning() +{ + auto gen = generator(); + auto gen2 = generator(); + gen = std::move(gen2); +} -- GitLab