aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArsen Arsenović <arsen@aarsen.me>2024-12-24 12:50:28 +0100
committerArsen Arsenović <arsen@gcc.gnu.org>2024-12-27 12:29:42 +0100
commit9a1cb52cae2d48d2fc18d01b534bf4e3203f0cc1 (patch)
tree38b23c282d6f9a1338ae1c456a86c0e0d7e54727
parent5a41ab8da087617d785f563b76f5c2fd6600b4c0 (diff)
downloadgcc-9a1cb52cae2d48d2fc18d01b534bf4e3203f0cc1.zip
gcc-9a1cb52cae2d48d2fc18d01b534bf4e3203f0cc1.tar.gz
gcc-9a1cb52cae2d48d2fc18d01b534bf4e3203f0cc1.tar.bz2
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.
-rw-r--r--libstdc++-v3/include/std/generator1
-rw-r--r--libstdc++-v3/testsuite/24_iterators/range_generators/pr118196.cc13
2 files changed, 14 insertions, 0 deletions
diff --git a/libstdc++-v3/include/std/generator b/libstdc++-v3/include/std/generator
index 3a19d53..7d7e9b7 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 0000000..ae161df
--- /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);
+}