From owner-svn-src-projects@FreeBSD.ORG Wed Mar 12 19:52:05 2014 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id A81FAEB; Wed, 12 Mar 2014 19:52:05 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 881079E5; Wed, 12 Mar 2014 19:52:05 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.8/8.14.8) with ESMTP id s2CJq5xh071577; Wed, 12 Mar 2014 19:52:05 GMT (envelope-from emaste@svn.freebsd.org) Received: (from emaste@localhost) by svn.freebsd.org (8.14.8/8.14.8/Submit) id s2CJq4T2071572; Wed, 12 Mar 2014 19:52:04 GMT (envelope-from emaste@svn.freebsd.org) Message-Id: <201403121952.s2CJq4T2071572@svn.freebsd.org> From: Ed Maste Date: Wed, 12 Mar 2014 19:52:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r263097 - in projects/uefi: contrib/libc++/include contrib/llvm/tools/clang/lib/CodeGen sys/net X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 Mar 2014 19:52:05 -0000 Author: emaste Date: Wed Mar 12 19:52:04 2014 New Revision: 263097 URL: http://svnweb.freebsd.org/changeset/base/263097 Log: Merge ^/head@262809 Sponsored by: The FreeBSD Foundation Modified: projects/uefi/contrib/libc++/include/__functional_03 projects/uefi/contrib/libc++/include/functional projects/uefi/contrib/llvm/tools/clang/lib/CodeGen/CGCXX.cpp projects/uefi/sys/net/route.c projects/uefi/sys/net/route.h Directory Properties: projects/uefi/ (props changed) projects/uefi/contrib/libc++/ (props changed) projects/uefi/contrib/llvm/ (props changed) projects/uefi/contrib/llvm/tools/clang/ (props changed) projects/uefi/sys/ (props changed) Modified: projects/uefi/contrib/libc++/include/__functional_03 ============================================================================== --- projects/uefi/contrib/libc++/include/__functional_03 Wed Mar 12 17:18:15 2014 (r263096) +++ projects/uefi/contrib/libc++/include/__functional_03 Wed Mar 12 19:52:04 2014 (r263097) @@ -33,28 +33,28 @@ public: // invoke typename __invoke_return::type - operator() () + operator() () const { return __invoke(__f_); } template typename __invoke_return0::type - operator() (_A0& __a0) + operator() (_A0& __a0) const { return __invoke(__f_, __a0); } template typename __invoke_return1::type - operator() (_A0& __a0, _A1& __a1) + operator() (_A0& __a0, _A1& __a1) const { return __invoke(__f_, __a0, __a1); } template typename __invoke_return2::type - operator() (_A0& __a0, _A1& __a1, _A2& __a2) + operator() (_A0& __a0, _A1& __a1, _A2& __a2) const { return __invoke(__f_, __a0, __a1, __a2); } Modified: projects/uefi/contrib/libc++/include/functional ============================================================================== --- projects/uefi/contrib/libc++/include/functional Wed Mar 12 17:18:15 2014 (r263096) +++ projects/uefi/contrib/libc++/include/functional Wed Mar 12 19:52:04 2014 (r263097) @@ -1221,7 +1221,7 @@ public: template _LIBCPP_INLINE_VISIBILITY typename __invoke_return::type - operator() (_ArgTypes&&... __args) + operator() (_ArgTypes&&... __args) const { return __invoke(__f_, _VSTD::forward<_ArgTypes>(__args)...); } Modified: projects/uefi/contrib/llvm/tools/clang/lib/CodeGen/CGCXX.cpp ============================================================================== --- projects/uefi/contrib/llvm/tools/clang/lib/CodeGen/CGCXX.cpp Wed Mar 12 17:18:15 2014 (r263096) +++ projects/uefi/contrib/llvm/tools/clang/lib/CodeGen/CGCXX.cpp Wed Mar 12 19:52:04 2014 (r263097) @@ -92,7 +92,13 @@ bool CodeGenModule::TryEmitBaseDestructo if (!ClassLayout.getBaseClassOffset(UniqueBase).isZero()) return true; + // Give up if the calling conventions don't match. We could update the call, + // but it is probably not worth it. const CXXDestructorDecl *BaseD = UniqueBase->getDestructor(); + if (BaseD->getType()->getAs()->getCallConv() != + D->getType()->getAs()->getCallConv()) + return true; + return TryEmitDefinitionAsAlias(GlobalDecl(D, Dtor_Base), GlobalDecl(BaseD, Dtor_Base), false); Modified: projects/uefi/sys/net/route.c ============================================================================== --- projects/uefi/sys/net/route.c Wed Mar 12 17:18:15 2014 (r263096) +++ projects/uefi/sys/net/route.c Wed Mar 12 19:52:04 2014 (r263097) @@ -237,6 +237,14 @@ rtentry_ctor(void *mem, int size, void * } static void +rtentry_dtor(void *mem, int size, void *arg) +{ + struct rtentry *rt = mem; + + RT_UNLOCK_COND(rt); +} + +static void vnet_route_init(const void *unused __unused) { struct domain *dom; @@ -248,7 +256,7 @@ vnet_route_init(const void *unused __unu sizeof(struct radix_node_head *), M_RTABLE, M_WAITOK|M_ZERO); V_rtzone = uma_zcreate("rtentry", sizeof(struct rtentry), - rtentry_ctor, NULL, + rtentry_ctor, rtentry_dtor, rtentry_zinit, rtentry_zfini, UMA_ALIGN_PTR, 0); for (dom = domains; dom; dom = dom->dom_next) { if (dom->dom_rtattach == NULL) Modified: projects/uefi/sys/net/route.h ============================================================================== --- projects/uefi/sys/net/route.h Wed Mar 12 17:18:15 2014 (r263096) +++ projects/uefi/sys/net/route.h Wed Mar 12 19:52:04 2014 (r263097) @@ -309,6 +309,10 @@ struct rt_addrinfo { #define RT_UNLOCK(_rt) mtx_unlock(&(_rt)->rt_mtx) #define RT_LOCK_DESTROY(_rt) mtx_destroy(&(_rt)->rt_mtx) #define RT_LOCK_ASSERT(_rt) mtx_assert(&(_rt)->rt_mtx, MA_OWNED) +#define RT_UNLOCK_COND(_rt) do { \ + if (mtx_owned(&(_rt)->rt_mtx)) \ + mtx_unlock(&(_rt)->rt_mtx); \ +} while (0) #define RT_ADDREF(_rt) do { \ RT_LOCK_ASSERT(_rt); \