Remove deprecated has_trivial_xxx traits

* include/std/type_traits (has_trivial_default_constructor): Remove.
	(has_trivial_copy_constructor, has_trivial_copy_assign): Likewise.
	* testsuite/20_util/has_trivial_copy_assign/requirements/
	explicit_instantiation.cc: Remove test.
	* testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error
	line number.
	* testsuite/20_util/has_trivial_copy_assign/requirements/typedefs.cc:
	Likewise.
	* testsuite/20_util/has_trivial_copy_assign/value.cc: Likewise.
	* testsuite/20_util/has_trivial_copy_constructor/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/has_trivial_copy_constructor/requirements/
	typedefs.cc: Likewise.
	* testsuite/20_util/has_trivial_copy_constructor/value.cc: Likewise.
	* testsuite/20_util/has_trivial_default_constructor/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/has_trivial_default_constructor/requirements/
	typedefs.cc: Likewise.
	* testsuite/20_util/has_trivial_default_constructor/value.cc:
	Likewise.
	* testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc:
	Check has_trivial_default_constructor, has_trivial_copy_constructor,
	and has_trivial_copy_assign are not defined.
	* testsuite/20_util/pair/requirements/dr801.cc: Remove commented out
	tests.
	* testsuite/20_util/tuple/requirements/dr801.cc: Likewise.
	* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
	dg-error line number.
	* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
	Likewise.

From-SVN: r239079
This commit is contained in:
Jonathan Wakely 2016-08-03 16:18:30 +01:00 committed by Jonathan Wakely
parent c98583e997
commit 27631a2542
17 changed files with 40 additions and 409 deletions

View file

@ -1,3 +1,36 @@
2016-08-03 Jonathan Wakely <jwakely@redhat.com>
* include/std/type_traits (has_trivial_default_constructor): Remove.
(has_trivial_copy_constructor, has_trivial_copy_assign): Likewise.
* testsuite/20_util/has_trivial_copy_assign/requirements/
explicit_instantiation.cc: Remove test.
* testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error
line number.
* testsuite/20_util/has_trivial_copy_assign/requirements/typedefs.cc:
Likewise.
* testsuite/20_util/has_trivial_copy_assign/value.cc: Likewise.
* testsuite/20_util/has_trivial_copy_constructor/requirements/
explicit_instantiation.cc: Likewise.
* testsuite/20_util/has_trivial_copy_constructor/requirements/
typedefs.cc: Likewise.
* testsuite/20_util/has_trivial_copy_constructor/value.cc: Likewise.
* testsuite/20_util/has_trivial_default_constructor/requirements/
explicit_instantiation.cc: Likewise.
* testsuite/20_util/has_trivial_default_constructor/requirements/
typedefs.cc: Likewise.
* testsuite/20_util/has_trivial_default_constructor/value.cc:
Likewise.
* testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc:
Check has_trivial_default_constructor, has_trivial_copy_constructor,
and has_trivial_copy_assign are not defined.
* testsuite/20_util/pair/requirements/dr801.cc: Remove commented out
tests.
* testsuite/20_util/tuple/requirements/dr801.cc: Likewise.
* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
dg-error line number.
* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
Likewise.
2016-08-02 Jonathan Wakely <jwakely@redhat.com>
* testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:

View file

@ -1447,23 +1447,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
__has_trivial_destructor(_Tp)>>
{ };
/// has_trivial_default_constructor (temporary legacy)
template<typename _Tp>
struct has_trivial_default_constructor
: public integral_constant<bool, __has_trivial_constructor(_Tp)>
{ } _GLIBCXX_DEPRECATED;
/// has_trivial_copy_constructor (temporary legacy)
template<typename _Tp>
struct has_trivial_copy_constructor
: public integral_constant<bool, __has_trivial_copy(_Tp)>
{ } _GLIBCXX_DEPRECATED;
/// has_trivial_copy_assign (temporary legacy)
template<typename _Tp>
struct has_trivial_copy_assign
: public integral_constant<bool, __has_trivial_assign(_Tp)>
{ } _GLIBCXX_DEPRECATED;
/// has_virtual_destructor
template<typename _Tp>

View file

@ -19,7 +19,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
// { dg-error "static assertion failed" "" { target *-*-* } 2272 }
// { dg-error "static assertion failed" "" { target *-*-* } 2255 }
#include <utility>

View file

@ -1,30 +0,0 @@
// { dg-options "-std=gnu++11 -Wno-deprecated" }
// { dg-do compile }
// 2010-06-08 Paolo Carlini <paolo.carlini@oracle.com>
// Copyright (C) 2010-2016 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/>.
// NB: This file is for testing type_traits with NO OTHER INCLUDES.
#include <type_traits>
namespace std
{
typedef short test_type;
template struct has_trivial_copy_assign<test_type>;
}

View file

@ -1,36 +0,0 @@
// { dg-options "-std=gnu++11 -Wno-deprecated" }
// 2010-06-08 Paolo Carlini <paolo.carlini@oracle.com>
//
// Copyright (C) 2010-2016 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/>.
//
// NB: This file is for testing type_traits with NO OTHER INCLUDES.
#include <type_traits>
// { dg-do compile }
void test01()
{
// Check for required typedefs
typedef std::has_trivial_copy_assign<int> test_type;
typedef test_type::value_type value_type;
typedef test_type::type type;
typedef test_type::type::value_type type_value_type;
typedef test_type::type::type type_type;
}

View file

@ -1,54 +0,0 @@
// { dg-options "-std=gnu++11 -Wno-deprecated" }
// { dg-do compile }
// 2010-06-08 Paolo Carlini <paolo.carlini@oracle.com>
//
// Copyright (C) 2010-2016 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 <type_traits>
#include <testsuite_tr1.h>
void test01()
{
using std::has_trivial_copy_assign;
using namespace __gnu_test;
static_assert(test_property<has_trivial_copy_assign, int>(true), "");
static_assert(test_property<has_trivial_copy_assign, float>(true), "");
static_assert(test_property<has_trivial_copy_assign, EnumType>(true), "");
static_assert(test_property<has_trivial_copy_assign, int*>(true), "");
static_assert(test_property<has_trivial_copy_assign, int(*)(int)>(true), "");
static_assert(test_property<has_trivial_copy_assign,
int (ClassType::*)>(true), "");
static_assert(test_property<has_trivial_copy_assign,
int (ClassType::*) (int)>(true), "");
static_assert(test_property<has_trivial_copy_assign, int[2]>(true), "");
static_assert(test_property<has_trivial_copy_assign, float[][3]>(true), "");
static_assert(test_property<has_trivial_copy_assign,
EnumType[2][3][4]>(true), "");
static_assert(test_property<has_trivial_copy_assign, int*[3]>(true), "");
static_assert(test_property<has_trivial_copy_assign,
int(*[][2])(int)>(true), "");
static_assert(test_property<has_trivial_copy_assign,
int (ClassType::*[2][3])>(true), "");
static_assert(test_property<has_trivial_copy_assign,
int (ClassType::*[][2][3]) (int)>(true), "");
// Negative tests.
static_assert(test_property<has_trivial_copy_assign, void>(false), "");
}

View file

@ -1,31 +0,0 @@
// { dg-options "-std=gnu++11 -Wno-deprecated" }
// { dg-do compile }
// 2007-04-30 Benjamin Kosnik <bkoz@redhat.com>
// Copyright (C) 2007-2016 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/>.
// NB: This file is for testing type_traits with NO OTHER INCLUDES.
#include <type_traits>
namespace std
{
typedef short test_type;
template struct has_trivial_copy_constructor<test_type>;
}

View file

@ -1,36 +0,0 @@
// { dg-options "-std=gnu++11 -Wno-deprecated" }
// 2004-12-30 Paolo Carlini <pcarlini@suse.de>
//
// Copyright (C) 2004-2016 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/>.
//
// NB: This file is for testing type_traits with NO OTHER INCLUDES.
#include <type_traits>
// { dg-do compile }
void test01()
{
// Check for required typedefs
typedef std::has_trivial_copy_constructor<int> test_type;
typedef test_type::value_type value_type;
typedef test_type::type type;
typedef test_type::type::value_type type_value_type;
typedef test_type::type::type type_type;
}

View file

@ -1,60 +0,0 @@
// { dg-options "-std=gnu++11 -Wno-deprecated" }
// { dg-do compile }
// 2004-12-30 Paolo Carlini <pcarlini@suse.de>
//
// Copyright (C) 2004-2016 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/>.
// 4.5.3 Type properties
#include <type_traits>
#include <testsuite_tr1.h>
void test01()
{
using std::has_trivial_copy_constructor;
using namespace __gnu_test;
// Positive tests.
static_assert(test_category<has_trivial_copy_constructor, int>(true), "");
static_assert(test_category<has_trivial_copy_constructor, float>(true), "");
static_assert(test_category<has_trivial_copy_constructor,
EnumType>(true), "");
static_assert(test_category<has_trivial_copy_constructor, int*>(true), "");
static_assert(test_category<has_trivial_copy_constructor,
int(*)(int)>(true), "");
static_assert(test_category<has_trivial_copy_constructor,
int (ClassType::*)>(true), "");
static_assert(test_category<has_trivial_copy_constructor,
int (ClassType::*) (int)>(true), "");
static_assert(test_category<has_trivial_copy_constructor, int[2]>(true), "");
static_assert(test_category<has_trivial_copy_constructor,
float[][3]>(true), "");
static_assert(test_category<has_trivial_copy_constructor,
EnumType[2][3][4]>(true), "");
static_assert(test_category<has_trivial_copy_constructor, int*[3]>(true), "");
static_assert(test_category<has_trivial_copy_constructor,
int(*[][2])(int)>(true), "");
static_assert(test_category<has_trivial_copy_constructor,
int (ClassType::*[2][3])>(true), "");
static_assert(test_category<has_trivial_copy_constructor,
int (ClassType::*[][2][3]) (int)>(true), "");
// Negative tests.
static_assert(test_category<has_trivial_copy_constructor, void>(false), "");
}

View file

@ -1,31 +0,0 @@
// { dg-options "-std=gnu++11 -Wno-deprecated" }
// { dg-do compile }
// 2007-04-30 Benjamin Kosnik <bkoz@redhat.com>
// Copyright (C) 2007-2016 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/>.
// NB: This file is for testing type_traits with NO OTHER INCLUDES.
#include <type_traits>
namespace std
{
typedef short test_type;
template struct has_trivial_default_constructor<test_type>;
}

View file

@ -1,36 +0,0 @@
// { dg-options "-std=gnu++11 -Wno-deprecated" }
// 2004-12-26 Paolo Carlini <pcarlini@suse.de>
//
// Copyright (C) 2004-2016 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/>.
//
// NB: This file is for testing type_traits with NO OTHER INCLUDES.
#include <type_traits>
// { dg-do compile }
void test01()
{
// Check for required typedefs
typedef std::has_trivial_default_constructor<int> test_type;
typedef test_type::value_type value_type;
typedef test_type::type type;
typedef test_type::type::value_type type_value_type;
typedef test_type::type::type type_type;
}

View file

@ -1,66 +0,0 @@
// { dg-options "-std=gnu++11 -Wno-deprecated" }
// { dg-do compile }
// 2004-12-26 Paolo Carlini <pcarlini@suse.de>
//
// Copyright (C) 2004-2016 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/>.
// 4.5.3 Type properties
#include <type_traits>
#include <testsuite_tr1.h>
void test01()
{
using std::has_trivial_default_constructor;
using namespace __gnu_test;
// Positive tests.
static_assert(test_category<has_trivial_default_constructor, int>(true), "");
static_assert(test_category<has_trivial_default_constructor,
float>(true), "");
static_assert(test_category<has_trivial_default_constructor,
EnumType>(true), "");
static_assert(test_category<has_trivial_default_constructor, int*>(true), "");
static_assert(test_category<has_trivial_default_constructor,
int(*)(int)>(true), "");
static_assert(test_category<has_trivial_default_constructor,
int (ClassType::*)>(true), "");
static_assert(test_category<has_trivial_default_constructor,
int (ClassType::*) (int)>(true), "");
static_assert(test_category<has_trivial_default_constructor,
int[2]>(true), "");
static_assert(test_category<has_trivial_default_constructor,
float[][3]>(true), "");
static_assert(test_category<has_trivial_default_constructor,
EnumType[2][3][4]>(true), "");
static_assert(test_category<has_trivial_default_constructor,
int*[3]>(true), "");
static_assert(test_category<has_trivial_default_constructor,
int(*[][2])(int)>(true), "");
static_assert(test_category<has_trivial_default_constructor,
int (ClassType::*[2][3])>(true), "");
static_assert(test_category<has_trivial_default_constructor,
int (ClassType::*[][2][3]) (int)>(true), "");
static_assert(test_category<has_trivial_default_constructor,
ClassType>(true), "");
// Negative tests.
static_assert(test_category<has_trivial_default_constructor,
void>(false), "");
}

View file

@ -24,7 +24,10 @@ namespace gnu
{
// C++11 changes from TR1.
using std::has_trivial_constructor; // { dg-error "has not been declared" }
using std::has_trivial_default_constructor; // { dg-error "has not been declared" }
using std::has_nothrow_constructor; // { dg-error "has not been declared" }
using std::has_trivial_copy; // { dg-error "has not been declared" }
using std::has_trivial_copy_constructor; // { dg-error "has not been declared" }
using std::has_trivial_copy_assign; // { dg-error "has not been declared" }
using std::has_nothrow_copy; // { dg-error "has not been declared" }
}

View file

@ -48,4 +48,4 @@ void test01()
// { dg-error "required from here" "" { target *-*-* } 40 }
// { dg-error "required from here" "" { target *-*-* } 42 }
// { dg-error "invalid use of incomplete type" "" { target *-*-* } 1937 }
// { dg-error "invalid use of incomplete type" "" { target *-*-* } 1920 }

View file

@ -48,5 +48,5 @@ void test01()
// { dg-error "required from here" "" { target *-*-* } 40 }
// { dg-error "required from here" "" { target *-*-* } 42 }
// { dg-error "invalid use of incomplete type" "" { target *-*-* } 1833 }
// { dg-error "declaration of" "" { target *-*-* } 1790 }
// { dg-error "invalid use of incomplete type" "" { target *-*-* } 1816 }
// { dg-error "declaration of" "" { target *-*-* } 1773 }

View file

@ -36,10 +36,6 @@ void test_trivial()
// Negative
/*
static_assert(std::has_trivial_default_constructor<pair_type>::value,
"! triv default");
static_assert(std::has_trivial_copy_assign<pair_type>::value,
"! triv assign");
static_assert(std::is_trivial<pair_type>::value, "! triv");
static_assert(std::is_pod<pair_type>::value, "! pod");
*/

View file

@ -36,10 +36,6 @@ void test_trivial()
// Negative
/*
static_assert(std::has_trivial_default_constructor<tuple_type>::value,
"! triv default");
static_assert(std::has_trivial_copy_assign<tuple_type>::value,
"! triv assign");
static_assert(std::is_trivial<tuple_type>::value, "! triv");
static_assert(std::is_pod<tuple_type>::value, "! pod");
*/