mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-08-03 16:30:29 +00:00
Add weak specifiers to new.cc definitions
The STL says that these should be replaceable by user code.
This commit is contained in:
parent
9a5a13854d
commit
8b7b6a414e
1 changed files with 18 additions and 16 deletions
34
ctl/new.cc
34
ctl/new.cc
|
@ -28,7 +28,9 @@ constexpr auto a1 = align_val_t(1);
|
|||
|
||||
} // namespace
|
||||
|
||||
void*
|
||||
#define WEAK __attribute__((weak))
|
||||
|
||||
WEAK void*
|
||||
operator new(size_t n, align_val_t a)
|
||||
{
|
||||
void* p;
|
||||
|
@ -38,79 +40,79 @@ operator new(size_t n, align_val_t a)
|
|||
return p;
|
||||
}
|
||||
|
||||
void*
|
||||
WEAK void*
|
||||
operator new[](size_t n, align_val_t a)
|
||||
{
|
||||
return operator new(n, a);
|
||||
}
|
||||
void*
|
||||
WEAK void*
|
||||
operator new(size_t n)
|
||||
{
|
||||
return operator new(n, a1);
|
||||
}
|
||||
void*
|
||||
WEAK void*
|
||||
operator new[](size_t n)
|
||||
{
|
||||
return operator new(n, a1);
|
||||
}
|
||||
|
||||
void*
|
||||
WEAK void*
|
||||
operator new(size_t, void* p)
|
||||
{
|
||||
return p;
|
||||
}
|
||||
void*
|
||||
WEAK void*
|
||||
operator new[](size_t, void* p)
|
||||
{
|
||||
return p;
|
||||
}
|
||||
|
||||
void
|
||||
WEAK void
|
||||
operator delete(void* p) noexcept
|
||||
{
|
||||
free(p);
|
||||
}
|
||||
void
|
||||
WEAK void
|
||||
operator delete[](void* p) noexcept
|
||||
{
|
||||
free(p);
|
||||
}
|
||||
void
|
||||
WEAK void
|
||||
operator delete(void* p, align_val_t) noexcept
|
||||
{
|
||||
free(p);
|
||||
}
|
||||
void
|
||||
WEAK void
|
||||
operator delete[](void* p, align_val_t) noexcept
|
||||
{
|
||||
free(p);
|
||||
}
|
||||
void
|
||||
WEAK void
|
||||
operator delete(void* p, size_t) noexcept
|
||||
{
|
||||
free(p);
|
||||
}
|
||||
void
|
||||
WEAK void
|
||||
operator delete[](void* p, size_t) noexcept
|
||||
{
|
||||
free(p);
|
||||
}
|
||||
void
|
||||
WEAK void
|
||||
operator delete(void* p, size_t, align_val_t) noexcept
|
||||
{
|
||||
free(p);
|
||||
}
|
||||
void
|
||||
WEAK void
|
||||
operator delete[](void* p, size_t, align_val_t) noexcept
|
||||
{
|
||||
free(p);
|
||||
}
|
||||
|
||||
void
|
||||
WEAK void
|
||||
operator delete(void*, void*) noexcept
|
||||
{
|
||||
}
|
||||
void
|
||||
WEAK void
|
||||
operator delete[](void*, void*) noexcept
|
||||
{
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue