From: Jonathan Wakely Date: Wed, 3 Aug 2016 15:18:30 +0000 (+0100) Subject: Remove deprecated has_trivial_xxx traits X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=27631a2542a0d95d4c66006ea32adaf212708d02;p=gcc.git 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 --- diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 0b2352e8c25..c6b5ec3d3d1 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,36 @@ +2016-08-03 Jonathan Wakely + + * 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 * testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc: diff --git a/libstdc++-v3/include/std/type_traits b/libstdc++-v3/include/std/type_traits index bfdc3ba90cf..dd9f57ed2e6 100644 --- a/libstdc++-v3/include/std/type_traits +++ b/libstdc++-v3/include/std/type_traits @@ -1447,23 +1447,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION __has_trivial_destructor(_Tp)>> { }; - /// has_trivial_default_constructor (temporary legacy) - template - struct has_trivial_default_constructor - : public integral_constant - { } _GLIBCXX_DEPRECATED; - - /// has_trivial_copy_constructor (temporary legacy) - template - struct has_trivial_copy_constructor - : public integral_constant - { } _GLIBCXX_DEPRECATED; - - /// has_trivial_copy_assign (temporary legacy) - template - struct has_trivial_copy_assign - : public integral_constant - { } _GLIBCXX_DEPRECATED; /// has_virtual_destructor template diff --git a/libstdc++-v3/testsuite/20_util/declval/requirements/1_neg.cc b/libstdc++-v3/testsuite/20_util/declval/requirements/1_neg.cc index 558b8c6a2f3..1c05f61b064 100644 --- a/libstdc++-v3/testsuite/20_util/declval/requirements/1_neg.cc +++ b/libstdc++-v3/testsuite/20_util/declval/requirements/1_neg.cc @@ -19,7 +19,7 @@ // with this library; see the file COPYING3. If not see // . -// { dg-error "static assertion failed" "" { target *-*-* } 2272 } +// { dg-error "static assertion failed" "" { target *-*-* } 2255 } #include diff --git a/libstdc++-v3/testsuite/20_util/has_trivial_copy_assign/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/20_util/has_trivial_copy_assign/requirements/explicit_instantiation.cc deleted file mode 100644 index 6393089c3aa..00000000000 --- a/libstdc++-v3/testsuite/20_util/has_trivial_copy_assign/requirements/explicit_instantiation.cc +++ /dev/null @@ -1,30 +0,0 @@ -// { dg-options "-std=gnu++11 -Wno-deprecated" } -// { dg-do compile } -// 2010-06-08 Paolo Carlini - -// 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 -// . - -// NB: This file is for testing type_traits with NO OTHER INCLUDES. - -#include - -namespace std -{ - typedef short test_type; - template struct has_trivial_copy_assign; -} diff --git a/libstdc++-v3/testsuite/20_util/has_trivial_copy_assign/requirements/typedefs.cc b/libstdc++-v3/testsuite/20_util/has_trivial_copy_assign/requirements/typedefs.cc deleted file mode 100644 index 61e54c12bb6..00000000000 --- a/libstdc++-v3/testsuite/20_util/has_trivial_copy_assign/requirements/typedefs.cc +++ /dev/null @@ -1,36 +0,0 @@ -// { dg-options "-std=gnu++11 -Wno-deprecated" } -// 2010-06-08 Paolo Carlini -// -// 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 -// . - -// -// NB: This file is for testing type_traits with NO OTHER INCLUDES. - -#include - -// { dg-do compile } - -void test01() -{ - // Check for required typedefs - typedef std::has_trivial_copy_assign 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; -} diff --git a/libstdc++-v3/testsuite/20_util/has_trivial_copy_assign/value.cc b/libstdc++-v3/testsuite/20_util/has_trivial_copy_assign/value.cc deleted file mode 100644 index 73a22584acb..00000000000 --- a/libstdc++-v3/testsuite/20_util/has_trivial_copy_assign/value.cc +++ /dev/null @@ -1,54 +0,0 @@ -// { dg-options "-std=gnu++11 -Wno-deprecated" } -// { dg-do compile } - -// 2010-06-08 Paolo Carlini -// -// 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 -// . - -#include -#include - -void test01() -{ - using std::has_trivial_copy_assign; - using namespace __gnu_test; - - static_assert(test_property(true), ""); - static_assert(test_property(true), ""); - static_assert(test_property(true), ""); - static_assert(test_property(true), ""); - static_assert(test_property(true), ""); - static_assert(test_property(true), ""); - static_assert(test_property(true), ""); - static_assert(test_property(true), ""); - static_assert(test_property(true), ""); - static_assert(test_property(true), ""); - static_assert(test_property(true), ""); - static_assert(test_property(true), ""); - static_assert(test_property(true), ""); - static_assert(test_property(true), ""); - - // Negative tests. - static_assert(test_property(false), ""); -} diff --git a/libstdc++-v3/testsuite/20_util/has_trivial_copy_constructor/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/20_util/has_trivial_copy_constructor/requirements/explicit_instantiation.cc deleted file mode 100644 index 0a5654c9bf4..00000000000 --- a/libstdc++-v3/testsuite/20_util/has_trivial_copy_constructor/requirements/explicit_instantiation.cc +++ /dev/null @@ -1,31 +0,0 @@ -// { dg-options "-std=gnu++11 -Wno-deprecated" } -// { dg-do compile } -// 2007-04-30 Benjamin Kosnik - -// 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 -// . - - -// NB: This file is for testing type_traits with NO OTHER INCLUDES. - -#include - -namespace std -{ - typedef short test_type; - template struct has_trivial_copy_constructor; -} diff --git a/libstdc++-v3/testsuite/20_util/has_trivial_copy_constructor/requirements/typedefs.cc b/libstdc++-v3/testsuite/20_util/has_trivial_copy_constructor/requirements/typedefs.cc deleted file mode 100644 index 1d055061522..00000000000 --- a/libstdc++-v3/testsuite/20_util/has_trivial_copy_constructor/requirements/typedefs.cc +++ /dev/null @@ -1,36 +0,0 @@ -// { dg-options "-std=gnu++11 -Wno-deprecated" } -// 2004-12-30 Paolo Carlini -// -// 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 -// . - -// -// NB: This file is for testing type_traits with NO OTHER INCLUDES. - -#include - -// { dg-do compile } - -void test01() -{ - // Check for required typedefs - typedef std::has_trivial_copy_constructor 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; -} diff --git a/libstdc++-v3/testsuite/20_util/has_trivial_copy_constructor/value.cc b/libstdc++-v3/testsuite/20_util/has_trivial_copy_constructor/value.cc deleted file mode 100644 index 5f7456e0b5a..00000000000 --- a/libstdc++-v3/testsuite/20_util/has_trivial_copy_constructor/value.cc +++ /dev/null @@ -1,60 +0,0 @@ -// { dg-options "-std=gnu++11 -Wno-deprecated" } -// { dg-do compile } - -// 2004-12-30 Paolo Carlini -// -// 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 -// . - -// 4.5.3 Type properties - -#include -#include - -void test01() -{ - using std::has_trivial_copy_constructor; - using namespace __gnu_test; - - // Positive tests. - static_assert(test_category(true), ""); - static_assert(test_category(true), ""); - static_assert(test_category(true), ""); - static_assert(test_category(true), ""); - static_assert(test_category(true), ""); - static_assert(test_category(true), ""); - static_assert(test_category(true), ""); - static_assert(test_category(true), ""); - static_assert(test_category(true), ""); - static_assert(test_category(true), ""); - static_assert(test_category(true), ""); - static_assert(test_category(true), ""); - static_assert(test_category(true), ""); - static_assert(test_category(true), ""); - - // Negative tests. - static_assert(test_category(false), ""); -} diff --git a/libstdc++-v3/testsuite/20_util/has_trivial_default_constructor/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/20_util/has_trivial_default_constructor/requirements/explicit_instantiation.cc deleted file mode 100644 index cd632136258..00000000000 --- a/libstdc++-v3/testsuite/20_util/has_trivial_default_constructor/requirements/explicit_instantiation.cc +++ /dev/null @@ -1,31 +0,0 @@ -// { dg-options "-std=gnu++11 -Wno-deprecated" } -// { dg-do compile } -// 2007-04-30 Benjamin Kosnik - -// 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 -// . - - -// NB: This file is for testing type_traits with NO OTHER INCLUDES. - -#include - -namespace std -{ - typedef short test_type; - template struct has_trivial_default_constructor; -} diff --git a/libstdc++-v3/testsuite/20_util/has_trivial_default_constructor/requirements/typedefs.cc b/libstdc++-v3/testsuite/20_util/has_trivial_default_constructor/requirements/typedefs.cc deleted file mode 100644 index 80f0b6cfb57..00000000000 --- a/libstdc++-v3/testsuite/20_util/has_trivial_default_constructor/requirements/typedefs.cc +++ /dev/null @@ -1,36 +0,0 @@ -// { dg-options "-std=gnu++11 -Wno-deprecated" } -// 2004-12-26 Paolo Carlini -// -// 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 -// . - -// -// NB: This file is for testing type_traits with NO OTHER INCLUDES. - -#include - -// { dg-do compile } - -void test01() -{ - // Check for required typedefs - typedef std::has_trivial_default_constructor 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; -} diff --git a/libstdc++-v3/testsuite/20_util/has_trivial_default_constructor/value.cc b/libstdc++-v3/testsuite/20_util/has_trivial_default_constructor/value.cc deleted file mode 100644 index dae437b3639..00000000000 --- a/libstdc++-v3/testsuite/20_util/has_trivial_default_constructor/value.cc +++ /dev/null @@ -1,66 +0,0 @@ -// { dg-options "-std=gnu++11 -Wno-deprecated" } -// { dg-do compile } - -// 2004-12-26 Paolo Carlini -// -// 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 -// . - -// 4.5.3 Type properties - -#include -#include - -void test01() -{ - using std::has_trivial_default_constructor; - using namespace __gnu_test; - - // Positive tests. - static_assert(test_category(true), ""); - static_assert(test_category(true), ""); - static_assert(test_category(true), ""); - static_assert(test_category(true), ""); - static_assert(test_category(true), ""); - static_assert(test_category(true), ""); - static_assert(test_category(true), ""); - static_assert(test_category(true), ""); - static_assert(test_category(true), ""); - static_assert(test_category(true), ""); - static_assert(test_category(true), ""); - static_assert(test_category(true), ""); - static_assert(test_category(true), ""); - static_assert(test_category(true), ""); - static_assert(test_category(true), ""); - - // Negative tests. - static_assert(test_category(false), ""); -} diff --git a/libstdc++-v3/testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc b/libstdc++-v3/testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc index fc9fbe531e0..1c65a4b4aa1 100644 --- a/libstdc++-v3/testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc +++ b/libstdc++-v3/testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc @@ -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" } } diff --git a/libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs_neg.cc b/libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs_neg.cc index 5e8fc47b94d..69e21b64035 100644 --- a/libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs_neg.cc +++ b/libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs_neg.cc @@ -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 } diff --git a/libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc b/libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc index 52f89f39e6e..5240c3e93eb 100644 --- a/libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc +++ b/libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc @@ -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 } diff --git a/libstdc++-v3/testsuite/20_util/pair/requirements/dr801.cc b/libstdc++-v3/testsuite/20_util/pair/requirements/dr801.cc index c23bb91d4c0..e7e140d436b 100644 --- a/libstdc++-v3/testsuite/20_util/pair/requirements/dr801.cc +++ b/libstdc++-v3/testsuite/20_util/pair/requirements/dr801.cc @@ -36,10 +36,6 @@ void test_trivial() // Negative /* - static_assert(std::has_trivial_default_constructor::value, - "! triv default"); - static_assert(std::has_trivial_copy_assign::value, - "! triv assign"); static_assert(std::is_trivial::value, "! triv"); static_assert(std::is_pod::value, "! pod"); */ diff --git a/libstdc++-v3/testsuite/20_util/tuple/requirements/dr801.cc b/libstdc++-v3/testsuite/20_util/tuple/requirements/dr801.cc index aea73ffa3bb..124bf754fec 100644 --- a/libstdc++-v3/testsuite/20_util/tuple/requirements/dr801.cc +++ b/libstdc++-v3/testsuite/20_util/tuple/requirements/dr801.cc @@ -36,10 +36,6 @@ void test_trivial() // Negative /* - static_assert(std::has_trivial_default_constructor::value, - "! triv default"); - static_assert(std::has_trivial_copy_assign::value, - "! triv assign"); static_assert(std::is_trivial::value, "! triv"); static_assert(std::is_pod::value, "! pod"); */