浏览代码

Use std placement new on non MSVC compilers (#7009)

Fix build break on macOS due to clash between std placement new and custom one.
Lukas Kurz 1 年之前
父节点
当前提交
36becec433
共有 1 个文件被更改,包括 11 次插入0 次删除
  1. 11 0
      lib/Common/Memory/Allocator.h

+ 11 - 0
lib/Common/Memory/Allocator.h

@@ -1,5 +1,6 @@
 //-------------------------------------------------------------------------------------------------------
 // Copyright (C) Microsoft. All rights reserved.
+// Copyright (c) ChakraCore Project Contributors. All rights reserved.
 // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
 //-------------------------------------------------------------------------------------------------------
 #pragma once
@@ -448,6 +449,8 @@ void AssertValue(void * mem, T value, uint byteCount)
 #define NO_EXPORT(x) x
 #endif
 
+#if defined(_MSC_VER) && !defined(__clang__)
+
 // For the debugger extension, we don't need the placement news
 #ifndef __PLACEMENT_NEW_INLINE
 #define __PLACEMENT_NEW_INLINE
@@ -473,6 +476,14 @@ void * previousAllocation               // Previously allocated memory
 
 #endif
 
+#else
+
+// Use std inline placement new instead of custom
+// See PR #7009
+#include <new>
+
+#endif
+
 //----------------------------------------
 // throwing operator new overrides
 //----------------------------------------