On 14/09/16 17:28 +0200, Marek Polacek wrote:
diff --git gcc/libstdc++-v3/testsuite/23_containers/vector/debug/insert6_neg.cc
gcc/libstdc++-v3/testsuite/23_containers/vector/debug/insert6_neg.cc
index 9893293..c939c22 100644
--- gcc/libstdc++-v3/testsuite/23_containers/vector/debug/insert6_neg.cc
+++ gcc/libstdc++-v3/testsuite/23_containers/vector/debug/insert6_neg.cc
@@ -16,6 +16,7 @@
// <http://www.gnu.org/licenses/>.
//
// { dg-do run { xfail *-*-* } }
+// { dg-options "-Wno-deprecated" }
#include <vector>
#include <debug/vector>
I'm replacing this part with a fix to avoid incrementing bool in the
testsuite, because otherwise generate_unique<bool>::build() only ever
returns true. This way it still doesn't return unique values, but at
least it alternates between true and false, and is valid for C++17.
Tested x86_64-linux, committed to trunk.
commit 4137ef6dbe7915f61c0451e10e7d91376421804c
Author: Jonathan Wakely <jwak...@redhat.com>
Date: Thu Sep 15 10:48:26 2016 +0100
Fix testsuite to not increment bool
* testsuite/23_containers/vector/debug/insert6_neg.cc: Remove
-Wno-deprecated.
* testsuite/util/debug/checks.h (generate_unique<bool>): Specialize.
diff --git a/libstdc++-v3/testsuite/23_containers/vector/debug/insert6_neg.cc b/libstdc++-v3/testsuite/23_containers/vector/debug/insert6_neg.cc
index c939c22..9893293 100644
--- a/libstdc++-v3/testsuite/23_containers/vector/debug/insert6_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/vector/debug/insert6_neg.cc
@@ -16,7 +16,6 @@
// <http://www.gnu.org/licenses/>.
//
// { dg-do run { xfail *-*-* } }
-// { dg-options "-Wno-deprecated" }
#include <vector>
#include <debug/vector>
diff --git a/libstdc++-v3/testsuite/util/debug/checks.h b/libstdc++-v3/testsuite/util/debug/checks.h
index 5a40608..872fa1a 100644
--- a/libstdc++-v3/testsuite/util/debug/checks.h
+++ b/libstdc++-v3/testsuite/util/debug/checks.h
@@ -53,6 +53,19 @@ namespace __gnu_test
}
};
+ template<>
+ struct generate_unique<bool>
+ {
+ typedef bool value_type;
+
+ value_type build()
+ {
+ static value_type _S_;
+ _S_ = !_S_;
+ return _S_;
+ }
+ };
+
template<typename _Tp1, typename _Tp2>
struct generate_unique<std::pair<_Tp1, _Tp2> >
{