This is a follow up to my last two changes to the condition_variable code. For some reason G++ didn't reject the explicitly-defaulted functions in src/condition_variable.cc even though they had different exception specifications to the declaration. I will try to file that in bugzilla but can't yet reproduce it in a smaller testcase. This patch also removes the condition_variable_any::native_handle_type typedef which is unused since I removed native_handle() in r180446, so the testcase has to go too.
* include/std/condition_variable (condition_variable_any): Remove unused native_handle_type typedef. * src/condition_variable.cc (condition_variable): Add missing noexcept specifications. * 30_threads/condition_variable_any/requirements/typedefs.cc: Remove. Tested x86_64-linux, committed to trunk.
Index: include/std/condition_variable =================================================================== --- include/std/condition_variable (revision 180446) +++ include/std/condition_variable (working copy) @@ -177,7 +177,6 @@ mutex _M_mutex; public: - typedef condition_variable::native_handle_type native_handle_type; condition_variable_any() noexcept; ~condition_variable_any() noexcept; Index: src/condition_variable.cc =================================================================== --- src/condition_variable.cc (revision 180411) +++ src/condition_variable.cc (working copy) @@ -31,8 +31,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION #ifdef __GTHREAD_COND_INIT - condition_variable::condition_variable() = default; - condition_variable::~condition_variable() = default; + condition_variable::condition_variable() noexcept = default; + condition_variable::~condition_variable() noexcept = default; #else condition_variable::condition_variable() noexcept { Index: testsuite/30_threads/condition_variable_any/requirements/typedefs.cc =================================================================== --- testsuite/30_threads/condition_variable_any/requirements/typedefs.cc (revision 180409) +++ testsuite/30_threads/condition_variable_any/requirements/typedefs.cc (working copy) @@ -1,30 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=gnu++0x" } -// { dg-require-cstdint "" } -// { dg-require-gthreads "" } - -// Copyright (C) 2010 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/>. - -#include <condition_variable> - -void test01() -{ - // Check for required typedefs - typedef std::condition_variable_any test_type; - typedef test_type::native_handle_type type; -}