s/requires/REQUIRES to fix the test on release build
[llvm-project.git] / libcxx / include / __new / placement_new_delete.h
blob42c9f34036775503ae5affd2483b0858e8469305
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 //===----------------------------------------------------------------------===//
9 #ifndef _LIBCPP___NEW_PLACEMENT_NEW_DELETE_H
10 #define _LIBCPP___NEW_PLACEMENT_NEW_DELETE_H
12 #include <__config>
13 #include <__cstddef/size_t.h>
15 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
16 # pragma GCC system_header
17 #endif
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;
26 [[__nodiscard__]] inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 void*
27 operator new[](std::size_t, void* __p) _NOEXCEPT {
28 return __p;
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
34 #endif // _LIBCPP___NEW_PLACEMENT_NEW_DELETE_H