aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2021-09-24 14:32:34 +0100
committerJonathan Wakely <jwakely@redhat.com>2021-09-28 20:22:51 +0100
commit07fbdd7bda1166ab2722dbeb4fd3c6b8558b324b (patch)
treee6a15c35197a8f2a9a3809ac6b91a0e31f9934fd
parentb701f46ea6d651aff8dbd267c29213253045e2b6 (diff)
downloadgcc-07fbdd7bda1166ab2722dbeb4fd3c6b8558b324b.zip
gcc-07fbdd7bda1166ab2722dbeb4fd3c6b8558b324b.tar.gz
gcc-07fbdd7bda1166ab2722dbeb4fd3c6b8558b324b.tar.bz2
libstdc++: Skip container adaptor tests that fail concept checks
As an extension, our container adaptors SFINAE away the default constructor if the adapted sequence container is not default constructible. When _GLIBCXX_CONCEPT_CHECKS is defined we enforce that the sequence is default constructible, so the tests for the extension fail. This disables the relevant parts of the tests. Signed-off-by: Jonathan Wakely <jwakely@redhat.com> libstdc++-v3/ChangeLog: * testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1.cc: Do not check non-default constructible sequences when _GLIBCXX_CONCEPT_CHECKS is defined. * testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1_c++98.cc: Likewise. * testsuite/23_containers/queue/requirements/explicit_instantiation/1.cc: Likewise. * testsuite/23_containers/queue/requirements/explicit_instantiation/1_c++98.cc: Likewise. * testsuite/23_containers/stack/requirements/explicit_instantiation/1.cc: Likewise. * testsuite/23_containers/stack/requirements/explicit_instantiation/1_c++98.cc: Likewise.
-rw-r--r--libstdc++-v3/testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1.cc11
-rw-r--r--libstdc++-v3/testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1_c++98.cc11
-rw-r--r--libstdc++-v3/testsuite/23_containers/queue/requirements/explicit_instantiation/1.cc2
-rw-r--r--libstdc++-v3/testsuite/23_containers/queue/requirements/explicit_instantiation/1_c++98.cc2
-rw-r--r--libstdc++-v3/testsuite/23_containers/stack/requirements/explicit_instantiation/1.cc2
-rw-r--r--libstdc++-v3/testsuite/23_containers/stack/requirements/explicit_instantiation/1_c++98.cc2
6 files changed, 22 insertions, 8 deletions
diff --git a/libstdc++-v3/testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1.cc
index d1e18f8..a425001 100644
--- a/libstdc++-v3/testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1.cc
+++ b/libstdc++-v3/testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1.cc
@@ -24,12 +24,15 @@
template class std::priority_queue<int>;
-struct NonDefaultConstructible : std::vector<int> {
- NonDefaultConstructible(int) { }
-};
struct Cmp : std::less<int> {
Cmp(int) { }
};
+template class std::priority_queue<int, std::vector<int>, Cmp>;
+
+#ifndef _GLIBCXX_CONCEPT_CHECKS
+struct NonDefaultConstructible : std::vector<int> {
+ NonDefaultConstructible(int) { }
+};
template class std::priority_queue<int, NonDefaultConstructible>;
template class std::priority_queue<int, NonDefaultConstructible, Cmp>;
-template class std::priority_queue<int, std::vector<int>, Cmp>;
+#endif
diff --git a/libstdc++-v3/testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1_c++98.cc b/libstdc++-v3/testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1_c++98.cc
index def9259..28549f5 100644
--- a/libstdc++-v3/testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1_c++98.cc
+++ b/libstdc++-v3/testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1_c++98.cc
@@ -24,12 +24,15 @@
template class std::priority_queue<int>;
-struct NonDefaultConstructible : std::vector<int> {
- NonDefaultConstructible(int) { }
-};
struct Cmp : std::less<int> {
Cmp(int) { }
};
+template class std::priority_queue<int, std::vector<int>, Cmp>;
+
+#ifndef _GLIBCXX_CONCEPT_CHECKS
+struct NonDefaultConstructible : std::vector<int> {
+ NonDefaultConstructible(int) { }
+};
template class std::priority_queue<int, NonDefaultConstructible>;
template class std::priority_queue<int, NonDefaultConstructible, Cmp>;
-template class std::priority_queue<int, std::vector<int>, Cmp>;
+#endif
diff --git a/libstdc++-v3/testsuite/23_containers/queue/requirements/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/23_containers/queue/requirements/explicit_instantiation/1.cc
index b737a15..3b9090c 100644
--- a/libstdc++-v3/testsuite/23_containers/queue/requirements/explicit_instantiation/1.cc
+++ b/libstdc++-v3/testsuite/23_containers/queue/requirements/explicit_instantiation/1.cc
@@ -24,7 +24,9 @@
template class std::queue<int>;
+#ifndef _GLIBCXX_CONCEPT_CHECKS
struct NonDefaultConstructible : std::deque<int> {
NonDefaultConstructible(int) { }
};
template class std::queue<int, NonDefaultConstructible>;
+#endif
diff --git a/libstdc++-v3/testsuite/23_containers/queue/requirements/explicit_instantiation/1_c++98.cc b/libstdc++-v3/testsuite/23_containers/queue/requirements/explicit_instantiation/1_c++98.cc
index 2e2d6a4..1cc4410 100644
--- a/libstdc++-v3/testsuite/23_containers/queue/requirements/explicit_instantiation/1_c++98.cc
+++ b/libstdc++-v3/testsuite/23_containers/queue/requirements/explicit_instantiation/1_c++98.cc
@@ -24,7 +24,9 @@
template class std::queue<int>;
+#ifndef _GLIBCXX_CONCEPT_CHECKS
struct NonDefaultConstructible : std::deque<int> {
NonDefaultConstructible(int) { }
};
template class std::queue<int, NonDefaultConstructible>;
+#endif
diff --git a/libstdc++-v3/testsuite/23_containers/stack/requirements/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/23_containers/stack/requirements/explicit_instantiation/1.cc
index 8002099..82e8e85 100644
--- a/libstdc++-v3/testsuite/23_containers/stack/requirements/explicit_instantiation/1.cc
+++ b/libstdc++-v3/testsuite/23_containers/stack/requirements/explicit_instantiation/1.cc
@@ -24,7 +24,9 @@
template class std::stack<int>;
+#ifndef _GLIBCXX_CONCEPT_CHECKS
struct NonDefaultConstructible : std::deque<int> {
NonDefaultConstructible(int) { }
};
template class std::stack<int, NonDefaultConstructible>;
+#endif
diff --git a/libstdc++-v3/testsuite/23_containers/stack/requirements/explicit_instantiation/1_c++98.cc b/libstdc++-v3/testsuite/23_containers/stack/requirements/explicit_instantiation/1_c++98.cc
index c66c597..8ff20fc 100644
--- a/libstdc++-v3/testsuite/23_containers/stack/requirements/explicit_instantiation/1_c++98.cc
+++ b/libstdc++-v3/testsuite/23_containers/stack/requirements/explicit_instantiation/1_c++98.cc
@@ -24,7 +24,9 @@
template class std::stack<int>;
+#ifndef _GLIBCXX_CONCEPT_CHECKS
struct NonDefaultConstructible : std::deque<int> {
NonDefaultConstructible(int) { }
};
template class std::stack<int, NonDefaultConstructible>;
+#endif