Add C++14 sized delete operators

Correct C++14 operation of the alloc wrappers requires us to define
custom sized delete operators.

Their presence won't cause any problem for people compiling as C++03 or
C++11.
pull/10707/head
Kevin Bracey 2019-05-29 17:14:44 +03:00
parent 9cc1caa031
commit f88cd3fbca
1 changed files with 32 additions and 0 deletions

View File

@ -1571,11 +1571,22 @@ void operator delete (void *ptr)
{
free_wrapper(ptr, MBED_CALLER_ADDR());
}
void operator delete (void *ptr, std::size_t)
{
free_wrapper(ptr, MBED_CALLER_ADDR());
}
void operator delete[](void *ptr)
{
free_wrapper(ptr, MBED_CALLER_ADDR());
}
void operator delete[](void *ptr, std::size_t)
{
free_wrapper(ptr, MBED_CALLER_ADDR());
}
#elif defined(MBED_MEM_TRACING_ENABLED) && defined(__GNUC__)
#include <reent.h>
@ -1616,11 +1627,21 @@ void operator delete (void *ptr)
free_wrapper(_REENT, ptr, MBED_CALLER_ADDR());
}
void operator delete (void *ptr, std::size_t)
{
free_wrapper(_REENT, ptr, MBED_CALLER_ADDR());
}
void operator delete[](void *ptr)
{
free_wrapper(_REENT, ptr, MBED_CALLER_ADDR());
}
void operator delete[](void *ptr, std::size_t)
{
free_wrapper(_REENT, ptr, MBED_CALLER_ADDR());
}
#else
void *operator new (std::size_t count)
@ -1655,11 +1676,22 @@ void operator delete (void *ptr)
{
free(ptr);
}
void operator delete (void *ptr, std::size_t)
{
free(ptr);
}
void operator delete[](void *ptr)
{
free(ptr);
}
void operator delete[](void *ptr, std::size_t)
{
free(ptr);
}
#endif
/* @brief standard c library clock() function.