Author: hans Date: Tue Aug 14 02:13:39 2018 New Revision: 339661 URL: http://llvm.org/viewvc/llvm-project?rev=339661&view=rev Log: Merging r339431: ------------------------------------------------------------------------ r339431 | ldionne | 2018-08-10 15:24:56 +0200 (Fri, 10 Aug 2018) | 16 lines
[libc++] Enable aligned allocation based on feature test macro, irrespective of standard Summary: The current code enables aligned allocation functions when compiling in C++17 and later. This is a problem because aligned allocation functions might not be supported on the target platform, which leads to an error at link time. Since r338934, Clang knows not to define __cpp_aligned_new when it's not available on the target platform -- this commit takes advantage of that to only use aligned allocation functions when they are available. Reviewers: vsapsai, EricWF Subscribers: christof, dexonsmith, cfe-commits, EricWF, mclow.lists Differential Revision: https://reviews.llvm.org/D50344 ------------------------------------------------------------------------ Added: libcxx/branches/release_70/test/libcxx/memory/aligned_allocation_macro.pass.cpp - copied unchanged from r339431, libcxx/trunk/test/libcxx/memory/aligned_allocation_macro.pass.cpp Modified: libcxx/branches/release_70/ (props changed) libcxx/branches/release_70/include/__config libcxx/branches/release_70/include/new Propchange: libcxx/branches/release_70/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Tue Aug 14 02:13:39 2018 @@ -1 +1,2 @@ /libcxx/branches/apple:136569-137939 +/libcxx/trunk:339431 Modified: libcxx/branches/release_70/include/__config URL: http://llvm.org/viewvc/llvm-project/libcxx/branches/release_70/include/__config?rev=339661&r1=339660&r2=339661&view=diff ============================================================================== --- libcxx/branches/release_70/include/__config (original) +++ libcxx/branches/release_70/include/__config Tue Aug 14 02:13:39 2018 @@ -991,6 +991,11 @@ template <unsigned> struct __static_asse # endif #endif // defined(__APPLE__) +#if !defined(_LIBCPP_HAS_NO_ALIGNED_ALLOCATION) && \ + !defined(_LIBCPP_BUILDING_LIBRARY) && \ + (!defined(__cpp_aligned_new) || __cpp_aligned_new < 201606) +# define _LIBCPP_HAS_NO_ALIGNED_ALLOCATION +#endif #if defined(__APPLE__) || defined(__FreeBSD__) #define _LIBCPP_HAS_DEFAULTRUNELOCALE Modified: libcxx/branches/release_70/include/new URL: http://llvm.org/viewvc/llvm-project/libcxx/branches/release_70/include/new?rev=339661&r1=339660&r2=339661&view=diff ============================================================================== --- libcxx/branches/release_70/include/new (original) +++ libcxx/branches/release_70/include/new Tue Aug 14 02:13:39 2018 @@ -108,13 +108,6 @@ void operator delete[](void* ptr, void* # define _LIBCPP_HAS_NO_SIZED_DEALLOCATION #endif -#if !defined(_LIBCPP_HAS_NO_ALIGNED_ALLOCATION) && \ - (!(defined(_LIBCPP_BUILDING_LIBRARY) || _LIBCPP_STD_VER > 14 || \ - (defined(__cpp_aligned_new) && __cpp_aligned_new >= 201606))) -# define _LIBCPP_HAS_NO_ALIGNED_ALLOCATION -#endif - - #if !__has_builtin(__builtin_operator_new) || \ __has_builtin(__builtin_operator_new) < 201802L || \ defined(_LIBCPP_HAS_NO_ALIGNED_ALLOCATION) || \ _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits