1 /*
2  * Copyright (c) 2020 Raspberry Pi (Trading) Ltd.
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  */
6 
7 #if !PICO_CXX_ENABLE_EXCEPTIONS
8 // Override the standard allocators to use regular malloc/free
9 
10 #if !PICO_CXX_DISABLE_ALLOCATION_OVERRIDES // Let user override
11 #include <cstdlib>
12 #include "pico.h"
13 
operator new(std::size_t n)14 void *operator new(std::size_t n) {
15     return std::malloc(n);
16 }
17 
operator new[](std::size_t n)18 void *operator new[](std::size_t n) {
19     return std::malloc(n);
20 }
21 
operator delete(void * p)22 void operator delete(void *p) { std::free(p); }
23 
operator delete[](void * p)24 void operator delete[](void *p) noexcept { std::free(p); }
25 
26 #if __cpp_sized_deallocation
27 
operator delete(void * p,__unused std::size_t n)28 void operator delete(void *p, __unused std::size_t n) noexcept { std::free(p); }
29 
operator delete[](void * p,__unused std::size_t n)30 void operator delete[](void *p, __unused std::size_t n) noexcept { std::free(p); }
31 
32 #endif
33 
34 #endif
35 
36 #endif
37