diff --git a/libs/libxx/libxx_new.cxx b/libs/libxx/libxx_new.cxx index 652eb342fd..e0f8894b45 100644 --- a/libs/libxx/libxx_new.cxx +++ b/libs/libxx/libxx_new.cxx @@ -88,3 +88,18 @@ FAR void *operator new(std::size_t nbytes) return alloc; } + +FAR void *operator new(std::size_t nbytes, FAR void *ptr) +{ + +#ifdef CONFIG_DEBUG_ERROR + if (ptr == nullptr) + { + _err("ERROR: Failed to placement new\n"); + } +#endif + + // Return the ptr pointer + + return ptr; +} diff --git a/libs/libxx/libxx_newa.cxx b/libs/libxx/libxx_newa.cxx index 8cab9f55e6..8c3b8a464c 100644 --- a/libs/libxx/libxx_newa.cxx +++ b/libs/libxx/libxx_newa.cxx @@ -96,3 +96,18 @@ FAR void *operator new[](std::size_t nbytes) return alloc; } + +FAR void *operator new[](std::size_t nbytes, FAR void *ptr) +{ + +#ifdef CONFIG_DEBUG_ERROR + if (ptr == nullptr) + { + _err("ERROR: Failed to placement new[]\n"); + } +#endif + + // Return the ptr pointer + + return ptr; +}