Index: head/devel/libc++/files/patch-include_type__traits =================================================================== --- head/devel/libc++/files/patch-include_type__traits (nonexistent) +++ head/devel/libc++/files/patch-include_type__traits (revision 428042) @@ -0,0 +1,25 @@ +--- include/type_traits.orig 2016-11-30 20:55:20 UTC ++++ include/type_traits +@@ -424,9 +424,12 @@ template struct _ + + namespace __libcpp_is_function_imp + { ++struct __dummy_type {}; + template char __test(_Tp*); ++template char __test(__dummy_type); + template __two __test(...); +-template _Tp& __source(); ++template _Tp& __source(int); ++template __dummy_type __source(long); + } + + template ::value || +@@ -435,7 +438,7 @@ template ::value || + __is_nullptr_t<_Tp>::value > + struct __libcpp_is_function +- : public integral_constant(__libcpp_is_function_imp::__source<_Tp>())) == 1> ++ : public integral_constant(__libcpp_is_function_imp::__source<_Tp>(0))) == 1> + {}; + template struct __libcpp_is_function<_Tp, true> : public false_type {}; + Property changes on: head/devel/libc++/files/patch-include_type__traits ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/devel/libc++/files/patch-test_utilities_meta_meta.unary_meta.unary.cat_function.pass.cpp =================================================================== --- head/devel/libc++/files/patch-test_utilities_meta_meta.unary_meta.unary.cat_function.pass.cpp (nonexistent) +++ head/devel/libc++/files/patch-test_utilities_meta_meta.unary_meta.unary.cat_function.pass.cpp (revision 428042) @@ -0,0 +1,58 @@ +--- test/utilities/meta/meta.unary/meta.unary.cat/function.pass.cpp.orig 2013-10-05 21:21:17 UTC ++++ test/utilities/meta/meta.unary/meta.unary.cat/function.pass.cpp +@@ -14,7 +14,7 @@ + #include + + template +-void test_function_imp() ++void test() + { + static_assert(!std::is_void::value, ""); + #if _LIBCPP_STD_VER > 11 +@@ -34,19 +34,34 @@ void test_function_imp() + static_assert( std::is_function::value, ""); + } + +-template +-void test_function() +-{ +- test_function_imp(); +- test_function_imp(); +- test_function_imp(); +- test_function_imp(); +-} ++// Since we can't actually add the const volatile and ref qualifiers once ++// later let's use a macro to do it. ++#define TEST_REGULAR(...) \ ++ test<__VA_ARGS__>(); \ ++ test<__VA_ARGS__ const>(); \ ++ test<__VA_ARGS__ volatile>(); \ ++ test<__VA_ARGS__ cons volatile>() ++ ++#define TEST_REF_QUALIFIED(...) \ ++ test<__VA_ARGS__ &>(); \ ++ test<__VA_ARGS__ const &>(); \ ++ test<__VA_ARGS__ volatile &>(); \ ++ test<__VA_ARGS__ const volatile &>(); \ ++ test<__VA_ARGS__ &&>(); \ ++ test<__VA_ARGS__ const &&>(); \ ++ test<__VA_ARGS__ volatile &&>(); \ ++ test<__VA_ARGS__ const volatile &&>() + + int main() + { +- test_function(); +- test_function(); +- test_function(); +- test_function(); ++ TEST_REGULAR( void () ); ++ TEST_REGULAR( void (int) ); ++ TEST_REGULAR( int (double) ); ++ TEST_REGULAR( int (double, char) ); ++#if __cplusplus >= 201103L ++ TEST_REF_QUALIFIED( void () ); ++ TEST_REF_QUALIFIED( void (int) ); ++ TEST_REF_QUALIFIED( int (double) ); ++ TEST_REF_QUALIFIED( int (double, char) ); ++#endif + } Property changes on: head/devel/libc++/files/patch-test_utilities_meta_meta.unary_meta.unary.cat_function.pass.cpp ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property