From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2181) id 098B23858432; Tue, 28 Sep 2021 19:25:02 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 098B23858432 MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" From: Jonathan Wakely To: gcc-cvs@gcc.gnu.org, libstdc++-cvs@gcc.gnu.org Subject: [gcc r12-3941] libstdc++: Skip container adaptor tests that fail concept checks X-Act-Checkin: gcc X-Git-Author: Jonathan Wakely X-Git-Refname: refs/heads/master X-Git-Oldrev: b701f46ea6d651aff8dbd267c29213253045e2b6 X-Git-Newrev: 07fbdd7bda1166ab2722dbeb4fd3c6b8558b324b Message-Id: <20210928192502.098B23858432@sourceware.org> Date: Tue, 28 Sep 2021 19:25:02 +0000 (GMT) X-BeenThere: libstdc++-cvs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libstdc++-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Sep 2021 19:25:02 -0000 https://gcc.gnu.org/g:07fbdd7bda1166ab2722dbeb4fd3c6b8558b324b commit r12-3941-g07fbdd7bda1166ab2722dbeb4fd3c6b8558b324b Author: Jonathan Wakely Date: Fri Sep 24 14:32:34 2021 +0100 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 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. Diff: --- .../priority_queue/requirements/explicit_instantiation/1.cc | 11 +++++++---- .../requirements/explicit_instantiation/1_c++98.cc | 11 +++++++---- .../queue/requirements/explicit_instantiation/1.cc | 2 ++ .../queue/requirements/explicit_instantiation/1_c++98.cc | 2 ++ .../stack/requirements/explicit_instantiation/1.cc | 2 ++ .../stack/requirements/explicit_instantiation/1_c++98.cc | 2 ++ 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 d1e18f879df..a425001612d 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; -struct NonDefaultConstructible : std::vector { - NonDefaultConstructible(int) { } -}; struct Cmp : std::less { Cmp(int) { } }; +template class std::priority_queue, Cmp>; + +#ifndef _GLIBCXX_CONCEPT_CHECKS +struct NonDefaultConstructible : std::vector { + NonDefaultConstructible(int) { } +}; template class std::priority_queue; template class std::priority_queue; -template class std::priority_queue, 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 def9259dc6b..28549f5246e 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; -struct NonDefaultConstructible : std::vector { - NonDefaultConstructible(int) { } -}; struct Cmp : std::less { Cmp(int) { } }; +template class std::priority_queue, Cmp>; + +#ifndef _GLIBCXX_CONCEPT_CHECKS +struct NonDefaultConstructible : std::vector { + NonDefaultConstructible(int) { } +}; template class std::priority_queue; template class std::priority_queue; -template class std::priority_queue, 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 b737a15a30b..3b9090cb945 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; +#ifndef _GLIBCXX_CONCEPT_CHECKS struct NonDefaultConstructible : std::deque { NonDefaultConstructible(int) { } }; template class std::queue; +#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 2e2d6a457dd..1cc4410b4b6 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; +#ifndef _GLIBCXX_CONCEPT_CHECKS struct NonDefaultConstructible : std::deque { NonDefaultConstructible(int) { } }; template class std::queue; +#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 8002099edcd..82e8e852150 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; +#ifndef _GLIBCXX_CONCEPT_CHECKS struct NonDefaultConstructible : std::deque { NonDefaultConstructible(int) { } }; template class std::stack; +#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 c66c5979606..8ff20fc903f 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; +#ifndef _GLIBCXX_CONCEPT_CHECKS struct NonDefaultConstructible : std::deque { NonDefaultConstructible(int) { } }; template class std::stack; +#endif