Skip to content

Commit f88cd3f

Browse files
committed
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.
1 parent 9cc1caa commit f88cd3f

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

platform/mbed_retarget.cpp

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1571,11 +1571,22 @@ void operator delete (void *ptr)
15711571
{
15721572
free_wrapper(ptr, MBED_CALLER_ADDR());
15731573
}
1574+
1575+
void operator delete (void *ptr, std::size_t)
1576+
{
1577+
free_wrapper(ptr, MBED_CALLER_ADDR());
1578+
}
1579+
15741580
void operator delete[](void *ptr)
15751581
{
15761582
free_wrapper(ptr, MBED_CALLER_ADDR());
15771583
}
15781584

1585+
void operator delete[](void *ptr, std::size_t)
1586+
{
1587+
free_wrapper(ptr, MBED_CALLER_ADDR());
1588+
}
1589+
15791590
#elif defined(MBED_MEM_TRACING_ENABLED) && defined(__GNUC__)
15801591

15811592
#include <reent.h>
@@ -1616,11 +1627,21 @@ void operator delete (void *ptr)
16161627
free_wrapper(_REENT, ptr, MBED_CALLER_ADDR());
16171628
}
16181629

1630+
void operator delete (void *ptr, std::size_t)
1631+
{
1632+
free_wrapper(_REENT, ptr, MBED_CALLER_ADDR());
1633+
}
1634+
16191635
void operator delete[](void *ptr)
16201636
{
16211637
free_wrapper(_REENT, ptr, MBED_CALLER_ADDR());
16221638
}
16231639

1640+
void operator delete[](void *ptr, std::size_t)
1641+
{
1642+
free_wrapper(_REENT, ptr, MBED_CALLER_ADDR());
1643+
}
1644+
16241645
#else
16251646

16261647
void *operator new (std::size_t count)
@@ -1655,11 +1676,22 @@ void operator delete (void *ptr)
16551676
{
16561677
free(ptr);
16571678
}
1679+
1680+
void operator delete (void *ptr, std::size_t)
1681+
{
1682+
free(ptr);
1683+
}
1684+
16581685
void operator delete[](void *ptr)
16591686
{
16601687
free(ptr);
16611688
}
16621689

1690+
void operator delete[](void *ptr, std::size_t)
1691+
{
1692+
free(ptr);
1693+
}
1694+
16631695
#endif
16641696

16651697
/* @brief standard c library clock() function.

0 commit comments

Comments
 (0)