* 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
+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:
__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>
// 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>
+++ /dev/null
-// { 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>;
-}
+++ /dev/null
-// { 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;
-}
+++ /dev/null
-// { 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), "");
-}
+++ /dev/null
-// { 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>;
-}
+++ /dev/null
-// { 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;
-}
+++ /dev/null
-// { 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), "");
-}
+++ /dev/null
-// { 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>;
-}
+++ /dev/null
-// { 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;
-}
+++ /dev/null
-// { 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), "");
-}
{
// 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" }
}
// { 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 }
// { 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 }
// 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");
*/
// 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");
*/