From 97739603d1372dd67a056559af0e9ac950a03a31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Wed, 12 Oct 2022 20:42:02 +0200 Subject: [PATCH] kernel: Added operator delete(ptr, nothrow_t) * This seems to be required when building the DriveEncryption kernel driver with gcc 11.2 on x86-64, at least. Change-Id: Ie1ae09435dd912021957e64d4b9a3e7b05913c33 Reviewed-on: https://review.haiku-os.org/c/haiku/+/5742 Tested-by: Commit checker robot Reviewed-by: waddlesplash --- headers/private/kernel/util/kernel_cpp.h | 5 +++-- src/system/kernel/util/kernel_cpp.cpp | 10 +++++++++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/headers/private/kernel/util/kernel_cpp.h b/headers/private/kernel/util/kernel_cpp.h index 604fad9585..7152f61739 100644 --- a/headers/private/kernel/util/kernel_cpp.h +++ b/headers/private/kernel/util/kernel_cpp.h @@ -1,6 +1,6 @@ /* - * Copyright 2003-2004, Axel Dörfler, axeld@pinc-software.de. - * Copyright 2004-2018, Haiku, Inc. All rights reserved. + * Copyright 2003-2022, Axel Dörfler, axeld@pinc-software.de. + * Copyright 2004-2022, Haiku, Inc. All rights reserved. * Distributed under the terms of the MIT License. */ #ifndef _KERNEL_UTIL_KERNEL_CPP_H @@ -36,6 +36,7 @@ extern void* operator new(size_t size, const mynothrow_t &) _NOEXCEPT; extern void* operator new[](size_t size, const mynothrow_t &) _NOEXCEPT; extern void operator delete(void *ptr) _NOEXCEPT; extern void operator delete[](void *ptr) _NOEXCEPT; +extern void operator delete(void *ptr, const std::nothrow_t &) _NOEXCEPT; #if __cplusplus >= 201402L extern void operator delete(void* ptr, std::size_t) _NOEXCEPT; diff --git a/src/system/kernel/util/kernel_cpp.cpp b/src/system/kernel/util/kernel_cpp.cpp index f8d87e95e6..cc527e3f3a 100644 --- a/src/system/kernel/util/kernel_cpp.cpp +++ b/src/system/kernel/util/kernel_cpp.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2003-2007, Haiku Inc. All rights reserved. + * Copyright 2003-2022, Haiku Inc. All rights reserved. * Distributed under the terms of the MIT License. * * Authors: @@ -7,6 +7,7 @@ * Ingo Weinhold, bonefish@users.sf.net. */ + //! C++ in the kernel @@ -142,6 +143,13 @@ operator delete[](void *ptr) _NOEXCEPT } +void +operator delete(void *ptr, std::nothrow_t const &) _NOEXCEPT +{ + free(ptr); +} + + #if __cplusplus >= 201402L void