brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.2 KiB · 65f80de Raw
45 lines · cpp
1//===-- Implementation of custom operator delete --------------------------===//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-exception6//7//===----------------------------------------------------------------------===//8 9#include "new.h"10#include "hdr/func/free.h"11 12void operator delete(void *mem) noexcept { ::free(mem); }13 14void operator delete(void *mem, std::align_val_t) noexcept { ::free(mem); }15 16void operator delete(void *mem, size_t) noexcept { ::free(mem); }17 18void operator delete(void *mem, size_t, std::align_val_t) noexcept {19#ifdef LIBC_TARGET_OS_IS_WINDOWS20  ::_aligned_free(mem);21#else22  ::free(mem);23#endif24}25 26void operator delete[](void *mem) noexcept { ::free(mem); }27 28void operator delete[](void *mem, std::align_val_t) noexcept {29#ifdef LIBC_TARGET_OS_IS_WINDOWS30  ::_aligned_free(mem);31#else32  ::free(mem);33#endif34}35 36void operator delete[](void *mem, size_t) noexcept { ::free(mem); }37 38void operator delete[](void *mem, size_t, std::align_val_t) noexcept {39#ifdef LIBC_TARGET_OS_IS_WINDOWS40  ::_aligned_free(mem);41#else42  ::free(mem);43#endif44}45