1 //===----------------------------------------------------------------------===// 2 // 3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4 // See https://llvm.org/LICENSE.txt for license information. 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6 // 7 //===----------------------------------------------------------------------===// 8 9 #ifndef _LIBCPP___NEW_PLACEMENT_NEW_DELETE_H 10 #define _LIBCPP___NEW_PLACEMENT_NEW_DELETE_H 11 12 #include <__config> 13 #include <__cstddef/size_t.h> 14 15 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) 16 # pragma GCC system_header 17 #endif 18 19 #if defined(_LIBCPP_ABI_VCRUNTIME) 20 # include <new.h> 21 #else 22 [[__nodiscard__]] inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 void* 23 operator new(std::size_t, void* __p) _NOEXCEPT { 24 return __p; 25 } 26 [[__nodiscard__]] inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 void* 27 operator new[](std::size_t, void* __p) _NOEXCEPT { 28 return __p; 29 } 30 inline _LIBCPP_HIDE_FROM_ABI void operator delete(void*, void*) _NOEXCEPT {} 31 inline _LIBCPP_HIDE_FROM_ABI void operator delete[](void*, void*) _NOEXCEPT {} 32 #endif 33 34 #endif // _LIBCPP___NEW_PLACEMENT_NEW_DELETE_H 35