Tested x86_64-linux. Pushed to trunk.
-- >8 --
We currently have 808590.cc which only runs for C++98 mode, and
808590-cxx11.cc which only runs for C++11 and later, but have almost
identical content (except for a defaulted special member in the C++11
one, to suppress a -Wdeprecated-copy warning).
This was done originally to ensure that the test ran for both C++98 mode
and C++11 mode, because the logic being tested was different enough to
need both to be tested. But it's trivial to run all tests in multiple
-std modes now, using GLIBCXX_TESTSUITE_STDS, so we don't need two
separate tests. We can remove one of the tests and allow the other one
to run in any -std mode.
libstdc++-v3/ChangeLog:
* testsuite/20_util/specialized_algorithms/uninitialized_copy/808590.cc:
Copy defaulted assignment operator from 808590-cxx11.cc to
suppress a warning.
*
testsuite/20_util/specialized_algorithms/uninitialized_copy/808590-cxx11.cc:
Removed.
---
.../uninitialized_copy/808590-cxx11.cc | 55 -------------------
.../uninitialized_copy/808590.cc | 7 ++-
2 files changed, 5 insertions(+), 57 deletions(-)
delete mode 100644
libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy/808590-cxx11.cc
diff --git
a/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy/808590-cxx11.cc
b/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy/808590-cxx11.cc
deleted file mode 100644
index 2e93aa75738..00000000000
---
a/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy/808590-cxx11.cc
+++ /dev/null
@@ -1,55 +0,0 @@
-// Copyright (C) 2012-2024 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING3. If not see
-// <http://www.gnu.org/licenses/>.
-
-// { dg-do run { target c++11 } }
-
-// This is identical to ./808590.cc but for C++11 and later.
-// See https://gcc.gnu.org/ml/libstdc++/2014-05/msg00027.html
-
-#include <vector>
-#include <stdexcept>
-
-// 4.4.x only
-struct c
-{
- void *m;
-
- c(void* o = 0) : m(o) {}
- c(const c &r) : m(r.m) {}
-
- c& operator=(const c &) = default;
-
- template<class T>
- explicit c(T &o) : m((void*)0xdeadbeef) { }
-};
-
-int main()
-{
- std::vector<c> cbs;
- const c cb((void*)0xcafebabe);
-
- for (int fd = 62; fd < 67; ++fd)
- {
- cbs.resize(fd + 1);
- cbs[fd] = cb;
- }
-
- for (int fd = 62; fd< 67; ++fd)
- if (cb.m != cbs[fd].m)
- throw std::runtime_error("wrong");
- return 0;
-}
diff --git
a/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy/808590.cc
b/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy/808590.cc
index d2e07127323..b53db0e154d 100644
---
a/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy/808590.cc
+++
b/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy/808590.cc
@@ -15,8 +15,6 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++98" }
-
#include <vector>
#include <stdexcept>
@@ -28,6 +26,11 @@ struct c
c(void* o = 0) : m(o) {}
c(const c &r) : m(r.m) {}
+#if __cplusplus >= 201103L
+ // Avoid -Wdeprecated-copy warning.
+ c& operator=(const c &) = default;
+#endif
+
template<class T>
explicit c(T &o) : m((void*)0xdeadbeef) { }
};
--
2.45.2