diff options
author | paolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-12-31 18:15:22 +0000 |
---|---|---|
committer | paolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-12-31 18:15:22 +0000 |
commit | 550df50fdca48ad473ec14bde82e71caa1752996 (patch) | |
tree | 59252aa9e578f4c860470bd385805a66f4c801e1 /libstdc++-v3 | |
parent | 1efce78f0c81d305a0cec5ffed599d7c7635bd5a (diff) | |
download | gcc-550df50fdca48ad473ec14bde82e71caa1752996.tar.gz |
2004-12-31 Paolo Carlini <pcarlini@suse.de>
* include/tr1/type_traits (is_member_function_pointer): Provide a
workaround for c++/19076, correct for functions with up to 15
arguments.
* testsuite/tr1/4_metaprogramming/composite_type_traits/
is_member_pointer/is_member_pointer.cc: Uncomment "XFAILed" tests;
add a test for variadic functions.
* testsuite/tr1/4_metaprogramming/composite_type_traits/
is_scalar/is_scalar.cc: Uncomment "XFAILed" tests.
* testsuite/tr1/4_metaprogramming/primary_type_categories/
is_enum/is_enum.cc: Likewise.
* testsuite/tr1/4_metaprogramming/primary_type_categories/
is_member_function_pointer/is_member_function_pointer.cc: Likewise;
add a test for variadic functions.
* testsuite/tr1/4_metaprogramming/primary_type_categories/
is_member_object_pointer/is_member_object_pointer.cc: Likewise.
* testsuite/tr1/4_metaprogramming/type_properties/
has_nothrow_assign/has_nothrow_assign.cc: Uncomment "XFAILed" tests.
* testsuite/tr1/4_metaprogramming/type_properties/
has_nothrow_constructor/has_nothrow_constructor.cc: Likewise.
* testsuite/tr1/4_metaprogramming/type_properties/
has_nothrow_copy/has_nothrow_copy.cc: Likewise.
* testsuite/tr1/4_metaprogramming/type_properties/
has_trivial_assign/has_trivial_assign.cc: Likewise.
* testsuite/tr1/4_metaprogramming/type_properties/
has_trivial_constructor/has_trivial_constructor.cc: Likewise.
* testsuite/tr1/4_metaprogramming/type_properties/
has_trivial_copy/has_trivial_copy.cc: Likewise.
* testsuite/tr1/4_metaprogramming/type_properties/
has_trivial_destructor/has_trivial_destructor.cc: Likewise.
* testsuite/tr1/4_metaprogramming/type_properties/
is_pod/is_pod.cc: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@92769 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3')
15 files changed, 298 insertions, 74 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index c723e1db2b1..9b58b9ed936 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,37 @@ +2004-12-31 Paolo Carlini <pcarlini@suse.de> + + * include/tr1/type_traits (is_member_function_pointer): Provide a + workaround for c++/19076, correct for functions with up to 15 + arguments. + * testsuite/tr1/4_metaprogramming/composite_type_traits/ + is_member_pointer/is_member_pointer.cc: Uncomment "XFAILed" tests; + add a test for variadic functions. + * testsuite/tr1/4_metaprogramming/composite_type_traits/ + is_scalar/is_scalar.cc: Uncomment "XFAILed" tests. + * testsuite/tr1/4_metaprogramming/primary_type_categories/ + is_enum/is_enum.cc: Likewise. + * testsuite/tr1/4_metaprogramming/primary_type_categories/ + is_member_function_pointer/is_member_function_pointer.cc: Likewise; + add a test for variadic functions. + * testsuite/tr1/4_metaprogramming/primary_type_categories/ + is_member_object_pointer/is_member_object_pointer.cc: Likewise. + * testsuite/tr1/4_metaprogramming/type_properties/ + has_nothrow_assign/has_nothrow_assign.cc: Uncomment "XFAILed" tests. + * testsuite/tr1/4_metaprogramming/type_properties/ + has_nothrow_constructor/has_nothrow_constructor.cc: Likewise. + * testsuite/tr1/4_metaprogramming/type_properties/ + has_nothrow_copy/has_nothrow_copy.cc: Likewise. + * testsuite/tr1/4_metaprogramming/type_properties/ + has_trivial_assign/has_trivial_assign.cc: Likewise. + * testsuite/tr1/4_metaprogramming/type_properties/ + has_trivial_constructor/has_trivial_constructor.cc: Likewise. + * testsuite/tr1/4_metaprogramming/type_properties/ + has_trivial_copy/has_trivial_copy.cc: Likewise. + * testsuite/tr1/4_metaprogramming/type_properties/ + has_trivial_destructor/has_trivial_destructor.cc: Likewise. + * testsuite/tr1/4_metaprogramming/type_properties/ + is_pod/is_pod.cc: Likewise. + 2004-12-30 Paolo Carlini <pcarlini@suse.de> * include/tr1/type_traits: Add has_trivial_copy, has_trivial_assign, diff --git a/libstdc++-v3/include/tr1/type_traits b/libstdc++-v3/include/tr1/type_traits index 01dd96b87e8..eb1087fd281 100644 --- a/libstdc++-v3/include/tr1/type_traits +++ b/libstdc++-v3/include/tr1/type_traits @@ -138,11 +138,218 @@ namespace tr1 _DEFINE_SPEC(2, is_member_object_pointer, _Tp _Cp::*, !is_function<_Tp>::value) + // Due to c++/19076, for the time being we cannot use the correct, neat + // implementation :-( + // + // template<typename> + // struct is_member_function_pointer + // : public false_type { }; + // _DEFINE_SPEC(2, is_member_function_pointer, _Tp _Cp::*, + // is_function<_Tp>::value) + + // Ugly, temporary workaround for member functions with up to 15 arguments. template<typename> + struct __is_mfp_helper + { static const bool __value = false; }; + + template<typename _Rt, typename _Cp> + struct __is_mfp_helper<_Rt (_Cp::*) ()> + { static const bool __value = true; }; + + template<typename _Rt, typename _Cp> + struct __is_mfp_helper<_Rt (_Cp::*) (...)> + { static const bool __value = true; }; + + template<typename _Rt, typename _Cp, typename _A0> + struct __is_mfp_helper<_Rt (_Cp::*) (_A0)> + { static const bool __value = true; }; + + template<typename _Rt, typename _Cp, typename _A0> + struct __is_mfp_helper<_Rt (_Cp::*) (_A0, ...)> + { static const bool __value = true; }; + + template<typename _Rt, typename _Cp, typename _A0, typename _A1> + struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1)> + { static const bool __value = true; }; + + template<typename _Rt, typename _Cp, typename _A0, typename _A1> + struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, ...)> + { static const bool __value = true; }; + + template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2> + struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2)> + { static const bool __value = true; }; + + template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2> + struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, ...)> + { static const bool __value = true; }; + + template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2, + typename _A3> + struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3)> + { static const bool __value = true; }; + + template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2, + typename _A3> + struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3, ...)> + { static const bool __value = true; }; + + template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2, + typename _A3, typename _A4> + struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3, _A4)> + { static const bool __value = true; }; + + template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2, + typename _A3, typename _A4> + struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3, _A4, ...)> + { static const bool __value = true; }; + + template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2, + typename _A3, typename _A4, typename _A5> + struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3, _A4, _A5)> + { static const bool __value = true; }; + + template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2, + typename _A3, typename _A4, typename _A5> + struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3, _A4, _A5, ...)> + { static const bool __value = true; }; + + template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2, + typename _A3, typename _A4, typename _A5, typename _A6> + struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3, _A4, _A5, _A6)> + { static const bool __value = true; }; + + template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2, + typename _A3, typename _A4, typename _A5, typename _A6> + struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3, _A4, _A5, _A6, + ...)> + { static const bool __value = true; }; + + template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2, + typename _A3, typename _A4, typename _A5, typename _A6, typename _A7> + struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3, _A4, _A5, _A6, + _A7)> + { static const bool __value = true; }; + + template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2, + typename _A3, typename _A4, typename _A5, typename _A6, typename _A7> + struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3, _A4, _A5, _A6, + _A7, ...)> + { static const bool __value = true; }; + + template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2, + typename _A3, typename _A4, typename _A5, typename _A6, typename _A7, + typename _A8> + struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3, _A4, _A5, _A6, + _A7, _A8)> + { static const bool __value = true; }; + + template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2, + typename _A3, typename _A4, typename _A5, typename _A6, typename _A7, + typename _A8> + struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3, _A4, _A5, _A6, + _A7, _A8, ...)> + { static const bool __value = true; }; + + template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2, + typename _A3, typename _A4, typename _A5, typename _A6, typename _A7, + typename _A8, typename _A9> + struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3, _A4, _A5, _A6, + _A7, _A8, _A9)> + { static const bool __value = true; }; + + template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2, + typename _A3, typename _A4, typename _A5, typename _A6, typename _A7, + typename _A8, typename _A9> + struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3, _A4, _A5, _A6, + _A7, _A8, _A9, ...)> + { static const bool __value = true; }; + + template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2, + typename _A3, typename _A4, typename _A5, typename _A6, typename _A7, + typename _A8, typename _A9, typename _A10> + struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3, _A4, _A5, _A6, + _A7, _A8, _A9, _A10)> + { static const bool __value = true; }; + + template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2, + typename _A3, typename _A4, typename _A5, typename _A6, typename _A7, + typename _A8, typename _A9, typename _A10> + struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3, _A4, _A5, _A6, + _A7, _A8, _A9, _A10, ...)> + { static const bool __value = true; }; + + template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2, + typename _A3, typename _A4, typename _A5, typename _A6, typename _A7, + typename _A8, typename _A9, typename _A10, typename _A11> + struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3, _A4, _A5, _A6, + _A7, _A8, _A9, _A10, _A11)> + { static const bool __value = true; }; + + template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2, + typename _A3, typename _A4, typename _A5, typename _A6, typename _A7, + typename _A8, typename _A9, typename _A10, typename _A11> + struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3, _A4, _A5, _A6, + _A7, _A8, _A9, _A10, _A11, ...)> + { static const bool __value = true; }; + + template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2, + typename _A3, typename _A4, typename _A5, typename _A6, typename _A7, + typename _A8, typename _A9, typename _A10, typename _A11, + typename _A12> + struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3, _A4, _A5, _A6, + _A7, _A8, _A9, _A10, _A11, _A12)> + { static const bool __value = true; }; + + template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2, + typename _A3, typename _A4, typename _A5, typename _A6, typename _A7, + typename _A8, typename _A9, typename _A10, typename _A11, + typename _A12> + struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3, _A4, _A5, _A6, + _A7, _A8, _A9, _A10, _A11, _A12, ...)> + { static const bool __value = true; }; + + template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2, + typename _A3, typename _A4, typename _A5, typename _A6, typename _A7, + typename _A8, typename _A9, typename _A10, typename _A11, + typename _A12, typename _A13> + struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3, _A4, _A5, _A6, + _A7, _A8, _A9, _A10, _A11, _A12, + _A13)> + { static const bool __value = true; }; + + template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2, + typename _A3, typename _A4, typename _A5, typename _A6, typename _A7, + typename _A8, typename _A9, typename _A10, typename _A11, + typename _A12, typename _A13> + struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3, _A4, _A5, _A6, + _A7, _A8, _A9, _A10, _A11, _A12, + _A13, ...)> + { static const bool __value = true; }; + + template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2, + typename _A3, typename _A4, typename _A5, typename _A6, typename _A7, + typename _A8, typename _A9, typename _A10, typename _A11, + typename _A12, typename _A13, typename _A14> + struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3, _A4, _A5, _A6, + _A7, _A8, _A9, _A10, _A11, _A12, + _A13, _A14)> + { static const bool __value = true; }; + + template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2, + typename _A3, typename _A4, typename _A5, typename _A6, typename _A7, + typename _A8, typename _A9, typename _A10, typename _A11, + typename _A12, typename _A13, typename _A14> + struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3, _A4, _A5, _A6, + _A7, _A8, _A9, _A10, _A11, _A12, + _A13, _A14, ...)> + { static const bool __value = true; }; + + template<typename _Tp> struct is_member_function_pointer - : public false_type { }; - _DEFINE_SPEC(2, is_member_function_pointer, _Tp _Cp::*, - is_function<_Tp>::value) + : public integral_constant<bool, (__is_mfp_helper<typename + remove_cv<_Tp>::type>::__value)> + { }; template<typename _Tp, bool = (is_fundamental<_Tp>::value || is_array<_Tp>::value diff --git a/libstdc++-v3/testsuite/tr1/4_metaprogramming/composite_type_traits/is_member_pointer/is_member_pointer.cc b/libstdc++-v3/testsuite/tr1/4_metaprogramming/composite_type_traits/is_member_pointer/is_member_pointer.cc index 918417e4ed2..f7ae576e234 100644 --- a/libstdc++-v3/testsuite/tr1/4_metaprogramming/composite_type_traits/is_member_pointer/is_member_pointer.cc +++ b/libstdc++-v3/testsuite/tr1/4_metaprogramming/composite_type_traits/is_member_pointer/is_member_pointer.cc @@ -34,16 +34,16 @@ void test01() VERIFY( (test_category<is_member_pointer, const int (ClassType::*)>(true)) ); VERIFY( (test_category<is_member_pointer, ClassType (ClassType::*)>(true)) ); - // Temporarily disabled because of c++/19076 :-( - - //VERIFY( (test_category<is_member_pointer, - // int (ClassType::*) (int)>(true)) ); - //VERIFY( (test_category<is_member_pointer, - // int (ClassType::*) (int) const>(true)) ); - //VERIFY( (test_category<is_member_function_pointer, - // ClassType (ClassType::*) (ClassType)>(true)) ); - //VERIFY( (test_category<is_member_pointer, - // float (ClassType::*) (int, float, int[], int&)>(true)) ); + VERIFY( (test_category<is_member_pointer, + int (ClassType::*) (int)>(true)) ); + VERIFY( (test_category<is_member_pointer, + int (ClassType::*) (int) const>(true)) ); + VERIFY( (test_category<is_member_pointer, + int (ClassType::*) (float, ...)>(true)) ); + VERIFY( (test_category<is_member_pointer, + ClassType (ClassType::*) (ClassType)>(true)) ); + VERIFY( (test_category<is_member_pointer, + float (ClassType::*) (int, float, int[], int&)>(true)) ); // Sanity check. VERIFY( (test_category<is_member_pointer, ClassType>(false)) ); diff --git a/libstdc++-v3/testsuite/tr1/4_metaprogramming/composite_type_traits/is_scalar/is_scalar.cc b/libstdc++-v3/testsuite/tr1/4_metaprogramming/composite_type_traits/is_scalar/is_scalar.cc index 37d6592f04f..7fc1faf413c 100644 --- a/libstdc++-v3/testsuite/tr1/4_metaprogramming/composite_type_traits/is_scalar/is_scalar.cc +++ b/libstdc++-v3/testsuite/tr1/4_metaprogramming/composite_type_traits/is_scalar/is_scalar.cc @@ -36,8 +36,7 @@ void test01() VERIFY( (test_category<is_scalar, int*>(true)) ); VERIFY( (test_category<is_scalar, int(*)(int)>(true)) ); VERIFY( (test_category<is_scalar, int (ClassType::*)>(true)) ); - // Temporarily disabled because of c++/19076 :-( - // VERIFY( (test_category<is_scalar, int (ClassType::*) (int)>(true)) ); + VERIFY( (test_category<is_scalar, int (ClassType::*) (int)>(true)) ); // Sanity check. VERIFY( (test_category<is_scalar, ClassType>(false)) ); diff --git a/libstdc++-v3/testsuite/tr1/4_metaprogramming/primary_type_categories/is_enum/is_enum.cc b/libstdc++-v3/testsuite/tr1/4_metaprogramming/primary_type_categories/is_enum/is_enum.cc index 3de48c4084f..0ae5887fcf6 100644 --- a/libstdc++-v3/testsuite/tr1/4_metaprogramming/primary_type_categories/is_enum/is_enum.cc +++ b/libstdc++-v3/testsuite/tr1/4_metaprogramming/primary_type_categories/is_enum/is_enum.cc @@ -43,8 +43,7 @@ void test01() VERIFY( (test_category<is_enum, float&>(false)) ); VERIFY( (test_category<is_enum, float(&)(float)>(false)) ); VERIFY( (test_category<is_enum, int (ClassType::*)>(false)) ); - // Temporarily disabled because of c++/19076 :-( - // VERIFY( (test_category<is_enum, int (ClassType::*) (int)>(false)) ); + VERIFY( (test_category<is_enum, int (ClassType::*) (int)>(false)) ); VERIFY( (test_category<is_enum, int (int)>(false)) ); VERIFY( (test_category<is_enum, ConvType>(false)) ); diff --git a/libstdc++-v3/testsuite/tr1/4_metaprogramming/primary_type_categories/is_member_function_pointer/is_member_function_pointer.cc b/libstdc++-v3/testsuite/tr1/4_metaprogramming/primary_type_categories/is_member_function_pointer/is_member_function_pointer.cc index 9652e1943e7..54b2711ae1b 100644 --- a/libstdc++-v3/testsuite/tr1/4_metaprogramming/primary_type_categories/is_member_function_pointer/is_member_function_pointer.cc +++ b/libstdc++-v3/testsuite/tr1/4_metaprogramming/primary_type_categories/is_member_function_pointer/is_member_function_pointer.cc @@ -31,17 +31,16 @@ void test01() using namespace __gnu_test; // Positive tests. - - // Temporarily disabled because of c++/19076 :-( - - //VERIFY( (test_category<is_member_function_pointer, - // int (ClassType::*) (int)>(true)) ); - //VERIFY( (test_category<is_member_function_pointer, - // int (ClassType::*) (int) const>(true)) ); - //VERIFY( (test_category<is_member_function_pointer, - // ClassType (ClassType::*) (ClassType)>(true)) ); - //VERIFY( (test_category<is_member_function_pointer, - // float (ClassType::*) (int, float, int[], int&)>(true)) ); + VERIFY( (test_category<is_member_function_pointer, + int (ClassType::*) (int)>(true)) ); + VERIFY( (test_category<is_member_function_pointer, + int (ClassType::*) (int) const>(true)) ); + VERIFY( (test_category<is_member_function_pointer, + int (ClassType::*) (float, ...)>(true)) ); + VERIFY( (test_category<is_member_function_pointer, + ClassType (ClassType::*) (ClassType)>(true)) ); + VERIFY( (test_category<is_member_function_pointer, + float (ClassType::*) (int, float, int[], int&)>(true)) ); // Negative tests. VERIFY( (test_category<is_member_function_pointer, diff --git a/libstdc++-v3/testsuite/tr1/4_metaprogramming/primary_type_categories/is_member_object_pointer/is_member_object_pointer.cc b/libstdc++-v3/testsuite/tr1/4_metaprogramming/primary_type_categories/is_member_object_pointer/is_member_object_pointer.cc index 986eee1173c..4f1045e6803 100644 --- a/libstdc++-v3/testsuite/tr1/4_metaprogramming/primary_type_categories/is_member_object_pointer/is_member_object_pointer.cc +++ b/libstdc++-v3/testsuite/tr1/4_metaprogramming/primary_type_categories/is_member_object_pointer/is_member_object_pointer.cc @@ -44,6 +44,8 @@ void test01() VERIFY( (test_category<is_member_object_pointer, int (ClassType::*) (int) const>(false)) ); VERIFY( (test_category<is_member_object_pointer, + int (ClassType::*) (float, ...)>(false)) ); + VERIFY( (test_category<is_member_object_pointer, ClassType (ClassType::*) (ClassType)>(false)) ); VERIFY( (test_category<is_member_object_pointer, float (ClassType::*) (int, float, int[], int&)>(false)) ); diff --git a/libstdc++-v3/testsuite/tr1/4_metaprogramming/type_properties/has_nothrow_assign/has_nothrow_assign.cc b/libstdc++-v3/testsuite/tr1/4_metaprogramming/type_properties/has_nothrow_assign/has_nothrow_assign.cc index 76dbbb8948e..e07fa4f589f 100644 --- a/libstdc++-v3/testsuite/tr1/4_metaprogramming/type_properties/has_nothrow_assign/has_nothrow_assign.cc +++ b/libstdc++-v3/testsuite/tr1/4_metaprogramming/type_properties/has_nothrow_assign/has_nothrow_assign.cc @@ -37,9 +37,8 @@ void test01() VERIFY( (test_assign_property<has_nothrow_assign, int*>(true)) ); VERIFY( (test_assign_property<has_nothrow_assign, int(*)(int)>(true)) ); VERIFY( (test_assign_property<has_nothrow_assign, int (ClassType::*)>(true)) ); - // Temporarily disabled because of c++/19076 :-( - // VERIFY( (test_assign_property<has_nothrow_assign, - // int (ClassType::*) (int)>(true)) ); + VERIFY( (test_assign_property<has_nothrow_assign, + int (ClassType::*) (int)>(true)) ); VERIFY( (test_assign_property<has_nothrow_assign, int[2]>(true)) ); VERIFY( (test_assign_property<has_nothrow_assign, float[][3]>(true)) ); VERIFY( (test_assign_property<has_nothrow_assign, EnumType[2][3][4]>(true)) ); @@ -47,9 +46,8 @@ void test01() VERIFY( (test_assign_property<has_nothrow_assign, int(*[][2])(int)>(true)) ); VERIFY( (test_assign_property<has_nothrow_assign, int (ClassType::*[2][3])>(true)) ); - // Temporarily disabled because of c++/19076 :-( - // VERIFY( (test_assign_property<has_nothrow_assign, - // int (ClassType::*[][2][3]) (int)>(true)) ); + VERIFY( (test_assign_property<has_nothrow_assign, + int (ClassType::*[][2][3]) (int)>(true)) ); } int main() diff --git a/libstdc++-v3/testsuite/tr1/4_metaprogramming/type_properties/has_nothrow_constructor/has_nothrow_constructor.cc b/libstdc++-v3/testsuite/tr1/4_metaprogramming/type_properties/has_nothrow_constructor/has_nothrow_constructor.cc index 3db624154bb..18c3a33fb2f 100644 --- a/libstdc++-v3/testsuite/tr1/4_metaprogramming/type_properties/has_nothrow_constructor/has_nothrow_constructor.cc +++ b/libstdc++-v3/testsuite/tr1/4_metaprogramming/type_properties/has_nothrow_constructor/has_nothrow_constructor.cc @@ -37,9 +37,8 @@ void test01() VERIFY( (test_category<has_nothrow_constructor, int*>(true)) ); VERIFY( (test_category<has_nothrow_constructor, int(*)(int)>(true)) ); VERIFY( (test_category<has_nothrow_constructor, int (ClassType::*)>(true)) ); - // Temporarily disabled because of c++/19076 :-( - // VERIFY( (test_category<has_nothrow_constructor, - // int (ClassType::*) (int)>(true)) ); + VERIFY( (test_category<has_nothrow_constructor, + int (ClassType::*) (int)>(true)) ); VERIFY( (test_category<has_nothrow_constructor, int[2]>(true)) ); VERIFY( (test_category<has_nothrow_constructor, float[][3]>(true)) ); VERIFY( (test_category<has_nothrow_constructor, EnumType[2][3][4]>(true)) ); @@ -47,9 +46,8 @@ void test01() VERIFY( (test_category<has_nothrow_constructor, int(*[][2])(int)>(true)) ); VERIFY( (test_category<has_nothrow_constructor, int (ClassType::*[2][3])>(true)) ); - // Temporarily disabled because of c++/19076 :-( - // VERIFY( (test_category<has_nothrow_constructor, - // int (ClassType::*[][2][3]) (int)>(true)) ); + VERIFY( (test_category<has_nothrow_constructor, + int (ClassType::*[][2][3]) (int)>(true)) ); // Sanity check. VERIFY( (test_category<has_nothrow_constructor, ClassType>(false)) ); diff --git a/libstdc++-v3/testsuite/tr1/4_metaprogramming/type_properties/has_nothrow_copy/has_nothrow_copy.cc b/libstdc++-v3/testsuite/tr1/4_metaprogramming/type_properties/has_nothrow_copy/has_nothrow_copy.cc index a59646565cc..7ba63bfa954 100644 --- a/libstdc++-v3/testsuite/tr1/4_metaprogramming/type_properties/has_nothrow_copy/has_nothrow_copy.cc +++ b/libstdc++-v3/testsuite/tr1/4_metaprogramming/type_properties/has_nothrow_copy/has_nothrow_copy.cc @@ -37,9 +37,8 @@ void test01() VERIFY( (test_copy_property<has_nothrow_copy, int*>(true)) ); VERIFY( (test_copy_property<has_nothrow_copy, int(*)(int)>(true)) ); VERIFY( (test_copy_property<has_nothrow_copy, int (ClassType::*)>(true)) ); - // Temporarily disabled because of c++/19076 :-( - // VERIFY( (test_copy_property<has_nothrow_copy, - // int (ClassType::*) (int)>(true)) ); + VERIFY( (test_copy_property<has_nothrow_copy, + int (ClassType::*) (int)>(true)) ); VERIFY( (test_copy_property<has_nothrow_copy, int[2]>(true)) ); VERIFY( (test_copy_property<has_nothrow_copy, float[][3]>(true)) ); VERIFY( (test_copy_property<has_nothrow_copy, EnumType[2][3][4]>(true)) ); @@ -47,9 +46,8 @@ void test01() VERIFY( (test_copy_property<has_nothrow_copy, int(*[][2])(int)>(true)) ); VERIFY( (test_copy_property<has_nothrow_copy, int (ClassType::*[2][3])>(true)) ); - // Temporarily disabled because of c++/19076 :-( - // VERIFY( (test_copy_property<has_nothrow_copy, - // int (ClassType::*[][2][3]) (int)>(true)) ); + VERIFY( (test_copy_property<has_nothrow_copy, + int (ClassType::*[][2][3]) (int)>(true)) ); } int main() diff --git a/libstdc++-v3/testsuite/tr1/4_metaprogramming/type_properties/has_trivial_assign/has_trivial_assign.cc b/libstdc++-v3/testsuite/tr1/4_metaprogramming/type_properties/has_trivial_assign/has_trivial_assign.cc index a85bcad3c99..66b2bc18c38 100644 --- a/libstdc++-v3/testsuite/tr1/4_metaprogramming/type_properties/has_trivial_assign/has_trivial_assign.cc +++ b/libstdc++-v3/testsuite/tr1/4_metaprogramming/type_properties/has_trivial_assign/has_trivial_assign.cc @@ -37,9 +37,8 @@ void test01() VERIFY( (test_assign_property<has_trivial_assign, int*>(true)) ); VERIFY( (test_assign_property<has_trivial_assign, int(*)(int)>(true)) ); VERIFY( (test_assign_property<has_trivial_assign, int (ClassType::*)>(true)) ); - // Temporarily disabled because of c++/19076 :-( - // VERIFY( (test_assign_property<has_trivial_assign, - // int (ClassType::*) (int)>(true)) ); + VERIFY( (test_assign_property<has_trivial_assign, + int (ClassType::*) (int)>(true)) ); VERIFY( (test_assign_property<has_trivial_assign, int[2]>(true)) ); VERIFY( (test_assign_property<has_trivial_assign, float[][3]>(true)) ); VERIFY( (test_assign_property<has_trivial_assign, EnumType[2][3][4]>(true)) ); @@ -47,9 +46,8 @@ void test01() VERIFY( (test_assign_property<has_trivial_assign, int(*[][2])(int)>(true)) ); VERIFY( (test_assign_property<has_trivial_assign, int (ClassType::*[2][3])>(true)) ); - // Temporarily disabled because of c++/19076 :-( - // VERIFY( (test_assign_property<has_trivial_assign, - // int (ClassType::*[][2][3]) (int)>(true)) ); + VERIFY( (test_assign_property<has_trivial_assign, + int (ClassType::*[][2][3]) (int)>(true)) ); } int main() diff --git a/libstdc++-v3/testsuite/tr1/4_metaprogramming/type_properties/has_trivial_constructor/has_trivial_constructor.cc b/libstdc++-v3/testsuite/tr1/4_metaprogramming/type_properties/has_trivial_constructor/has_trivial_constructor.cc index 1de7d1eb969..7559a43ffc1 100644 --- a/libstdc++-v3/testsuite/tr1/4_metaprogramming/type_properties/has_trivial_constructor/has_trivial_constructor.cc +++ b/libstdc++-v3/testsuite/tr1/4_metaprogramming/type_properties/has_trivial_constructor/has_trivial_constructor.cc @@ -37,9 +37,8 @@ void test01() VERIFY( (test_category<has_trivial_constructor, int*>(true)) ); VERIFY( (test_category<has_trivial_constructor, int(*)(int)>(true)) ); VERIFY( (test_category<has_trivial_constructor, int (ClassType::*)>(true)) ); - // Temporarily disabled because of c++/19076 :-( - // VERIFY( (test_category<has_trivial_constructor, - // int (ClassType::*) (int)>(true)) ); + VERIFY( (test_category<has_trivial_constructor, + int (ClassType::*) (int)>(true)) ); VERIFY( (test_category<has_trivial_constructor, int[2]>(true)) ); VERIFY( (test_category<has_trivial_constructor, float[][3]>(true)) ); VERIFY( (test_category<has_trivial_constructor, EnumType[2][3][4]>(true)) ); @@ -47,9 +46,8 @@ void test01() VERIFY( (test_category<has_trivial_constructor, int(*[][2])(int)>(true)) ); VERIFY( (test_category<has_trivial_constructor, int (ClassType::*[2][3])>(true)) ); - // Temporarily disabled because of c++/19076 :-( - // VERIFY( (test_category<has_trivial_constructor, - // int (ClassType::*[][2][3]) (int)>(true)) ); + VERIFY( (test_category<has_trivial_constructor, + int (ClassType::*[][2][3]) (int)>(true)) ); // Sanity check. VERIFY( (test_category<has_trivial_constructor, ClassType>(false)) ); diff --git a/libstdc++-v3/testsuite/tr1/4_metaprogramming/type_properties/has_trivial_copy/has_trivial_copy.cc b/libstdc++-v3/testsuite/tr1/4_metaprogramming/type_properties/has_trivial_copy/has_trivial_copy.cc index 6002b85bb6a..64eed997d60 100644 --- a/libstdc++-v3/testsuite/tr1/4_metaprogramming/type_properties/has_trivial_copy/has_trivial_copy.cc +++ b/libstdc++-v3/testsuite/tr1/4_metaprogramming/type_properties/has_trivial_copy/has_trivial_copy.cc @@ -37,9 +37,8 @@ void test01() VERIFY( (test_copy_property<has_trivial_copy, int*>(true)) ); VERIFY( (test_copy_property<has_trivial_copy, int(*)(int)>(true)) ); VERIFY( (test_copy_property<has_trivial_copy, int (ClassType::*)>(true)) ); - // Temporarily disabled because of c++/19076 :-( - // VERIFY( (test_copy_property<has_trivial_copy, - // int (ClassType::*) (int)>(true)) ); + VERIFY( (test_copy_property<has_trivial_copy, + int (ClassType::*) (int)>(true)) ); VERIFY( (test_copy_property<has_trivial_copy, int[2]>(true)) ); VERIFY( (test_copy_property<has_trivial_copy, float[][3]>(true)) ); VERIFY( (test_copy_property<has_trivial_copy, EnumType[2][3][4]>(true)) ); @@ -47,9 +46,8 @@ void test01() VERIFY( (test_copy_property<has_trivial_copy, int(*[][2])(int)>(true)) ); VERIFY( (test_copy_property<has_trivial_copy, int (ClassType::*[2][3])>(true)) ); - // Temporarily disabled because of c++/19076 :-( - // VERIFY( (test_copy_property<has_trivial_copy, - // int (ClassType::*[][2][3]) (int)>(true)) ); + VERIFY( (test_copy_property<has_trivial_copy, + int (ClassType::*[][2][3]) (int)>(true)) ); } int main() diff --git a/libstdc++-v3/testsuite/tr1/4_metaprogramming/type_properties/has_trivial_destructor/has_trivial_destructor.cc b/libstdc++-v3/testsuite/tr1/4_metaprogramming/type_properties/has_trivial_destructor/has_trivial_destructor.cc index 4e4a2842fb1..e3cc9db9f8f 100644 --- a/libstdc++-v3/testsuite/tr1/4_metaprogramming/type_properties/has_trivial_destructor/has_trivial_destructor.cc +++ b/libstdc++-v3/testsuite/tr1/4_metaprogramming/type_properties/has_trivial_destructor/has_trivial_destructor.cc @@ -37,9 +37,8 @@ void test01() VERIFY( (test_category<has_trivial_destructor, int*>(true)) ); VERIFY( (test_category<has_trivial_destructor, int(*)(int)>(true)) ); VERIFY( (test_category<has_trivial_destructor, int (ClassType::*)>(true)) ); - // Temporarily disabled because of c++/19076 :-( - // VERIFY( (test_category<has_trivial_destructor, - // int (ClassType::*) (int)>(true)) ); + VERIFY( (test_category<has_trivial_destructor, + int (ClassType::*) (int)>(true)) ); VERIFY( (test_category<has_trivial_destructor, int[2]>(true)) ); VERIFY( (test_category<has_trivial_destructor, float[][3]>(true)) ); VERIFY( (test_category<has_trivial_destructor, EnumType[2][3][4]>(true)) ); @@ -47,9 +46,8 @@ void test01() VERIFY( (test_category<has_trivial_destructor, int(*[][2])(int)>(true)) ); VERIFY( (test_category<has_trivial_destructor, int (ClassType::*[2][3])>(true)) ); - // Temporarily disabled because of c++/19076 :-( - // VERIFY( (test_category<has_trivial_destructor, - // int (ClassType::*[][2][3]) (int)>(true)) ); + VERIFY( (test_category<has_trivial_destructor, + int (ClassType::*[][2][3]) (int)>(true)) ); // Sanity check. VERIFY( (test_category<has_trivial_destructor, ClassType>(false)) ); diff --git a/libstdc++-v3/testsuite/tr1/4_metaprogramming/type_properties/is_pod/is_pod.cc b/libstdc++-v3/testsuite/tr1/4_metaprogramming/type_properties/is_pod/is_pod.cc index 4fac0f3cb0e..485692091c8 100644 --- a/libstdc++-v3/testsuite/tr1/4_metaprogramming/type_properties/is_pod/is_pod.cc +++ b/libstdc++-v3/testsuite/tr1/4_metaprogramming/type_properties/is_pod/is_pod.cc @@ -37,16 +37,14 @@ void test01() VERIFY( (test_category<is_pod, int*>(true)) ); VERIFY( (test_category<is_pod, int(*)(int)>(true)) ); VERIFY( (test_category<is_pod, int (ClassType::*)>(true)) ); - // Temporarily disabled because of c++/19076 :-( - // VERIFY( (test_category<is_pod, int (ClassType::*) (int)>(true)) ); + VERIFY( (test_category<is_pod, int (ClassType::*) (int)>(true)) ); VERIFY( (test_category<is_pod, int[2]>(true)) ); VERIFY( (test_category<is_pod, float[][3]>(true)) ); VERIFY( (test_category<is_pod, EnumType[2][3][4]>(true)) ); VERIFY( (test_category<is_pod, int*[3]>(true)) ); VERIFY( (test_category<is_pod, int(*[][2])(int)>(true)) ); VERIFY( (test_category<is_pod, int (ClassType::*[2][3])>(true)) ); - // Temporarily disabled because of c++/19076 :-( - // VERIFY( (test_category<is_pod, int (ClassType::*[][2][3]) (int)>(true)) ); + VERIFY( (test_category<is_pod, int (ClassType::*[][2][3]) (int)>(true)) ); // Sanity check. VERIFY( (test_category<is_pod, ClassType>(false)) ); |