From owner-svn-ports-branches@freebsd.org Fri Dec 9 14:41:59 2016 Return-Path: Delivered-To: svn-ports-branches@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B0426C68DD3; Fri, 9 Dec 2016 14:41:59 +0000 (UTC) (envelope-from cpm@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8ACDA106B; Fri, 9 Dec 2016 14:41:59 +0000 (UTC) (envelope-from cpm@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id uB9EfwiL008162; Fri, 9 Dec 2016 14:41:58 GMT (envelope-from cpm@FreeBSD.org) Received: (from cpm@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id uB9EfwCW008160; Fri, 9 Dec 2016 14:41:58 GMT (envelope-from cpm@FreeBSD.org) Message-Id: <201612091441.uB9EfwCW008160@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cpm set sender to cpm@FreeBSD.org using -f From: "Carlos J. Puga Medina" Date: Fri, 9 Dec 2016 14:41:58 +0000 (UTC) To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-branches@freebsd.org Subject: svn commit: r428209 - branches/2016Q4/devel/libc++/files X-SVN-Group: ports-branches MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-ports-branches@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for all the branches of the ports tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 09 Dec 2016 14:41:59 -0000 Author: cpm Date: Fri Dec 9 14:41:58 2016 New Revision: 428209 URL: https://svnweb.freebsd.org/changeset/ports/428209 Log: MFH: r428042 devel/libc++: Fix std::is_function failed In file included from /usr/include/c++/v1/string:439: In file included from /usr/include/c++/v1/algorithm:624: /usr/include/c++/v1/type_traits:433:76: error: no matching function for call to '__source' : public integral_constant(__is_function_imp::__source<_Tp>())) == 1> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/v1/type_traits:438:14: note: in instantiation of template class 'std::__1::__libcpp_is_function' requested here : public __libcpp_is_function<_Tp> {}; ^ /usr/include/c++/v1/type_traits:443:97: note: in instantiation of template class 'std::__1::is_function' requested here template struct __libcpp_is_member_function_pointer<_Tp _Up::*> : public is_function<_Tp> {}; ^ /usr/include/c++/v1/type_traits:446:14: note: in instantiation of template class 'std::__1::__libcpp_is_member_function_pointer' requested here : public __libcpp_is_member_function_pointer::type> {}; ^ PR: 215016 Submitted by: cpm Reviewed by: dim (maintainer) Approved by: dim (maintainer), feld (mentor, implicit) Obtained from: https://reviews.llvm.org/D7573 Approved by: ports-secteam (junovitch) Added: branches/2016Q4/devel/libc++/files/patch-include_type__traits - copied unchanged from r428042, head/devel/libc++/files/patch-include_type__traits branches/2016Q4/devel/libc++/files/patch-test_utilities_meta_meta.unary_meta.unary.cat_function.pass.cpp - copied unchanged from r428042, head/devel/libc++/files/patch-test_utilities_meta_meta.unary_meta.unary.cat_function.pass.cpp Modified: Directory Properties: branches/2016Q4/ (props changed) Copied: branches/2016Q4/devel/libc++/files/patch-include_type__traits (from r428042, head/devel/libc++/files/patch-include_type__traits) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ branches/2016Q4/devel/libc++/files/patch-include_type__traits Fri Dec 9 14:41:58 2016 (r428209, copy of r428042, head/devel/libc++/files/patch-include_type__traits) @@ -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 {}; + Copied: branches/2016Q4/devel/libc++/files/patch-test_utilities_meta_meta.unary_meta.unary.cat_function.pass.cpp (from r428042, head/devel/libc++/files/patch-test_utilities_meta_meta.unary_meta.unary.cat_function.pass.cpp) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ branches/2016Q4/devel/libc++/files/patch-test_utilities_meta_meta.unary_meta.unary.cat_function.pass.cpp Fri Dec 9 14:41:58 2016 (r428209, copy of r428042, head/devel/libc++/files/patch-test_utilities_meta_meta.unary_meta.unary.cat_function.pass.cpp) @@ -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 + }