Dimitry Andric: FreeBSD only: Add the C11 aligned_alloc to <cstdlib> and adjust...
authorHoward Hinnant <hhinnant@apple.com>
Sat, 13 Oct 2012 18:03:53 +0000 (18:03 +0000)
committerHoward Hinnant <hhinnant@apple.com>
Sat, 13 Oct 2012 18:03:53 +0000 (18:03 +0000)
llvm-svn: 165882

libcxx/include/__config
libcxx/include/cstdlib

index 189140f..75b2206 100644 (file)
@@ -252,8 +252,9 @@ typedef __char32_t char32_t;
 #define _LIBCPP_HAS_NO_CONSTEXPR
 #endif
 
-#if __FreeBSD__
+#if __FreeBSD__ && (__ISO_C_VISIBLE >= 2011 || __cplusplus >= 201103L)
 #define _LIBCPP_HAS_QUICK_EXIT
+#define _LIBCPP_HAS_C11_FEATURES
 #endif
 
 #if (__has_feature(cxx_noexcept))
index bf8e85e..7f6c6c8 100644 (file)
@@ -74,6 +74,9 @@ int mbtowc(wchar_t* restrict pwc, const char* restrict s, size_t n);
 int wctomb(char* s, wchar_t wchar);
 size_t mbstowcs(wchar_t* restrict pwcs, const char* restrict s, size_t n);
 size_t wcstombs(char* restrict s, const wchar_t* restrict pwcs, size_t n);
+int at_quick_exit(void (*func)(void))                                     // C++11
+void quick_exit(int status);                                              // C++11
+void *aligned_alloc(size_t alignment, size_t size);                       // C11
 
 }  // std
 
@@ -135,6 +138,9 @@ using ::wcstombs;
 using ::at_quick_exit;
 using ::quick_exit;
 #endif
+#ifdef _LIBCPP_HAS_C11_FEATURES
+using ::aligned_alloc;
+#endif
 
 // MSVC already has the correct prototype in <stdlib.h.h> #ifdef __cplusplus
 #if !defined(_MSC_VER) && !defined(__sun__)