svn commit: r321222 - in stable/10: contrib/libc++/include contrib/libc++/src sys/sys

Dimitry Andric dim at FreeBSD.org
Wed Jul 19 18:22:33 UTC 2017


Author: dim
Date: Wed Jul 19 18:22:32 2017
New Revision: 321222
URL: https://svnweb.freebsd.org/changeset/base/321222

Log:
  Pull in r229281 from upstream libc++ (by Larisse Voufo):
  
    Implement C++14's sized deallocation functions, since there are no
    longer implicitly defined by clang, as of r229241.
  
  This allows ports which use C++14's sized deallocation functions, such
  as cad/openvsp, to build on stable/10.  Bump __FreeBSD_version to allow
  detection from ports.
  
  Direct commit, since stable/11 and head already have newer versions of
  libc++ which include this change.
  
  PR:		219484

Modified:
  stable/10/contrib/libc++/include/new
  stable/10/contrib/libc++/src/new.cpp
  stable/10/sys/sys/param.h

Modified: stable/10/contrib/libc++/include/new
==============================================================================
--- stable/10/contrib/libc++/include/new	Wed Jul 19 18:19:51 2017	(r321221)
+++ stable/10/contrib/libc++/include/new	Wed Jul 19 18:22:32 2017	(r321222)
@@ -50,12 +50,18 @@ new_handler get_new_handler() noexcept;
 void* operator new(std::size_t size);                                   // replaceable
 void* operator new(std::size_t size, const std::nothrow_t&) noexcept;   // replaceable
 void  operator delete(void* ptr) noexcept;                              // replaceable
+void  operator delete(void* ptr, std::size_t size) noexcept;            // replaceable, C++14
 void  operator delete(void* ptr, const std::nothrow_t&) noexcept;       // replaceable
+void  operator delete(void* ptr, std::size_t size,
+                      const std::nothrow_t&) noexcept;                  // replaceable, C++14
 
 void* operator new[](std::size_t size);                                 // replaceable
 void* operator new[](std::size_t size, const std::nothrow_t&) noexcept; // replaceable
 void  operator delete[](void* ptr) noexcept;                            // replaceable
+void  operator delete[](void* ptr, std::size_t size) noexcept;          // replaceable, C++14
 void  operator delete[](void* ptr, const std::nothrow_t&) noexcept;     // replaceable
+void  operator delete[](void* ptr, std::size_t size,
+                        const std::nothrow_t&) noexcept;                // replaceable, C++14
 
 void* operator new  (std::size_t size, void* ptr) noexcept;
 void* operator new[](std::size_t size, void* ptr) noexcept;
@@ -131,7 +137,9 @@ _LIBCPP_NEW_DELETE_VIS void* operator new(std::size_t 
 ;
 _LIBCPP_NEW_DELETE_VIS void* operator new(std::size_t __sz, const std::nothrow_t&) _NOEXCEPT _NOALIAS;
 _LIBCPP_NEW_DELETE_VIS void  operator delete(void* __p) _NOEXCEPT;
+_LIBCPP_NEW_DELETE_VIS void  operator delete(void* __p, std::size_t __sz) _NOEXCEPT;
 _LIBCPP_NEW_DELETE_VIS void  operator delete(void* __p, const std::nothrow_t&) _NOEXCEPT;
+_LIBCPP_NEW_DELETE_VIS void  operator delete(void* __p, std::size_t __sz, const std::nothrow_t&) _NOEXCEPT;
 
 _LIBCPP_NEW_DELETE_VIS void* operator new[](std::size_t __sz)
 #if !__has_feature(cxx_noexcept)
@@ -140,7 +148,9 @@ _LIBCPP_NEW_DELETE_VIS void* operator new[](std::size_
 ;
 _LIBCPP_NEW_DELETE_VIS void* operator new[](std::size_t __sz, const std::nothrow_t&) _NOEXCEPT _NOALIAS;
 _LIBCPP_NEW_DELETE_VIS void  operator delete[](void* __p) _NOEXCEPT;
+_LIBCPP_NEW_DELETE_VIS void  operator delete[](void* __p, std::size_t __sz) _NOEXCEPT;
 _LIBCPP_NEW_DELETE_VIS void  operator delete[](void* __p, const std::nothrow_t&) _NOEXCEPT;
+_LIBCPP_NEW_DELETE_VIS void  operator delete[](void* __p, std::size_t __sz, const std::nothrow_t&) _NOEXCEPT;
 
 inline _LIBCPP_INLINE_VISIBILITY void* operator new  (std::size_t, void* __p) _NOEXCEPT {return __p;}
 inline _LIBCPP_INLINE_VISIBILITY void* operator new[](std::size_t, void* __p) _NOEXCEPT {return __p;}

Modified: stable/10/contrib/libc++/src/new.cpp
==============================================================================
--- stable/10/contrib/libc++/src/new.cpp	Wed Jul 19 18:19:51 2017	(r321221)
+++ stable/10/contrib/libc++/src/new.cpp	Wed Jul 19 18:22:32 2017	(r321222)
@@ -126,6 +126,13 @@ operator delete(void* ptr) _NOEXCEPT
 
 _LIBCPP_WEAK _LIBCPP_NEW_DELETE_VIS
 void
+operator delete(void* ptr, size_t) _NOEXCEPT
+{
+    ::operator delete(ptr);
+}
+
+_LIBCPP_WEAK _LIBCPP_NEW_DELETE_VIS
+void
 operator delete(void* ptr, const std::nothrow_t&) _NOEXCEPT
 {
     ::operator delete(ptr);
@@ -133,14 +140,35 @@ operator delete(void* ptr, const std::nothrow_t&) _NOE
 
 _LIBCPP_WEAK _LIBCPP_NEW_DELETE_VIS
 void
+operator delete(void* ptr, size_t, const std::nothrow_t&) _NOEXCEPT
+{
+    ::operator delete(ptr);
+}
+
+_LIBCPP_WEAK _LIBCPP_NEW_DELETE_VIS
+void
 operator delete[] (void* ptr) _NOEXCEPT
 {
-    ::operator delete (ptr);
+    ::operator delete(ptr);
 }
 
 _LIBCPP_WEAK _LIBCPP_NEW_DELETE_VIS
 void
+operator delete[] (void* ptr, size_t) _NOEXCEPT
+{
+    ::operator delete[](ptr);
+}
+
+_LIBCPP_WEAK _LIBCPP_NEW_DELETE_VIS
+void
 operator delete[] (void* ptr, const std::nothrow_t&) _NOEXCEPT
+{
+    ::operator delete[](ptr);
+}
+
+_LIBCPP_WEAK _LIBCPP_NEW_DELETE_VIS
+void
+operator delete[] (void* ptr, size_t, const std::nothrow_t&) _NOEXCEPT
 {
     ::operator delete[](ptr);
 }

Modified: stable/10/sys/sys/param.h
==============================================================================
--- stable/10/sys/sys/param.h	Wed Jul 19 18:19:51 2017	(r321221)
+++ stable/10/sys/sys/param.h	Wed Jul 19 18:22:32 2017	(r321222)
@@ -58,7 +58,7 @@
  *		in the range 5 to 9.
  */
 #undef __FreeBSD_version
-#define __FreeBSD_version 1003514	/* Master, propagated to newvers */
+#define __FreeBSD_version 1003515	/* Master, propagated to newvers */
 
 /*
  * __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD,


More information about the svn-src-all mailing list