Still expose std::align_val_t in C++17 even if we don't have aligned new/delete.
authorEric Fiselier <eric@efcs.ca>
Fri, 20 Jan 2017 06:27:34 +0000 (06:27 +0000)
committerEric Fiselier <eric@efcs.ca>
Fri, 20 Jan 2017 06:27:34 +0000 (06:27 +0000)
r292564 disabled the aligned new/delete overloads on platforms without
posix_memalign. Unfortunately that patch also disabled the  align_val_t
definition in C++17 as well.

This patch causes align_val_t to be exposed in C++17 regardless
of if we have the new/delete overloads.

llvm-svn: 292582

libcxx/include/new

index 6e43501..86428f2 100644 (file)
@@ -145,7 +145,7 @@ public:
 
 #endif  // defined(_LIBCPP_BUILDING_NEW) || (_LIBCPP_STD_VER > 11)
 
-#ifndef _LIBCPP_HAS_NO_ALIGNED_ALLOCATION
+#if !defined(_LIBCPP_HAS_NO_ALIGNED_ALLOCATION) || _LIBCPP_STD_VER > 14
 #ifndef _LIBCPP_CXX03_LANG
 enum class _LIBCPP_ENUM_VIS align_val_t : size_t { };
 #else