diff options
Diffstat (limited to 'winsup/cygwin/libstdcxx_wrapper.cc')
-rw-r--r-- | winsup/cygwin/libstdcxx_wrapper.cc | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/winsup/cygwin/libstdcxx_wrapper.cc b/winsup/cygwin/libstdcxx_wrapper.cc index 34911d0..fa13fdd 100644 --- a/winsup/cygwin/libstdcxx_wrapper.cc +++ b/winsup/cygwin/libstdcxx_wrapper.cc @@ -24,6 +24,10 @@ details. */ #define MANGLED_ZNAX "__wrap__Znam" #define MANGLED_ZNWX_NOTHROW_T "__wrap__ZnwmRKSt9nothrow_t" #define MANGLED_ZNAX_NOTHROW_T "__wrap__ZnamRKSt9nothrow_t" +#define MANGLED_ZNWX_ALIGN_VAL_T "__wrap__ZnwmSt11align_val_t" +#define MANGLED_ZNAX_ALIGN_VAL_T "__wrap__ZnamSt11align_val_t" +#define MANGLED_ZNWX_ALIGN_VAL_T_NOTHROW_T "__wrap__ZnwmSt11align_val_tRKSt9nothrow_t" +#define MANGLED_ZNAX_ALIGN_VAL_T_NOTHROW_T "__wrap__ZnamSt11align_val_tRKSt9nothrow_t" extern void *operator new(std::size_t sz) noexcept (false) __asm__ (MANGLED_ZNWX); @@ -41,6 +45,30 @@ extern void operator delete(void *p, const std::nothrow_t &nt) noexcept (true) __asm__ (_SYMSTR (__wrap__ZdlPvRKSt9nothrow_t)); extern void operator delete[](void *p, const std::nothrow_t &nt) noexcept (true) __asm__ (_SYMSTR (__wrap__ZdaPvRKSt9nothrow_t)); +extern void operator delete(void *p, std::size_t sz) noexcept (true) + __asm__ (_SYMSTR (__wrap__ZdlPvm)); +extern void operator delete[](void *p, std::size_t sz) noexcept (true) + __asm__ (_SYMSTR (__wrap__ZdaPvm)); +extern void *operator new(std::size_t sz, std::align_val_t al) noexcept (false) + __asm__ (MANGLED_ZNWX_ALIGN_VAL_T); +extern void *operator new[](std::size_t sz, std::align_val_t al) noexcept (false) + __asm__ (MANGLED_ZNAX_ALIGN_VAL_T); +extern void operator delete(void *p, std::align_val_t al) noexcept (true) + __asm__ (_SYMSTR (__wrap__ZdlPvSt11align_val_t)); +extern void operator delete[](void *p, std::align_val_t al) noexcept (true) + __asm__ (_SYMSTR (__wrap__ZdaPvSt11align_val_t)); +extern void operator delete(void *p, std::size_t sz, std::align_val_t al) noexcept (true) + __asm__ (_SYMSTR (__wrap__ZdlPvmSt11align_val_t)); +extern void operator delete[](void *p, std::size_t sz, std::align_val_t al) noexcept (true) + __asm__ (_SYMSTR (__wrap__ZdaPvmSt11align_val_t)); +extern void *operator new(std::size_t sz, std::align_val_t al, const std::nothrow_t &nt) noexcept (true) + __asm__ (MANGLED_ZNWX_ALIGN_VAL_T_NOTHROW_T); +extern void *operator new[](std::size_t sz, std::align_val_t al, const std::nothrow_t &nt) noexcept (true) + __asm__ (MANGLED_ZNAX_ALIGN_VAL_T_NOTHROW_T); +extern void operator delete(void *p, std::align_val_t al, const std::nothrow_t &nt) noexcept (true) + __asm__ (_SYMSTR (__wrap__ZdlPvSt11align_val_tRKSt9nothrow_t)); +extern void operator delete[](void *p, std::align_val_t al, const std::nothrow_t &nt) noexcept (true) + __asm__ (_SYMSTR (__wrap__ZdaPvSt11align_val_tRKSt9nothrow_t)); extern void * operator new(std::size_t sz) noexcept (false) @@ -66,6 +94,54 @@ operator delete[](void *p) noexcept (true) (*user_data->cxx_malloc->oper_delete__) (p); } +extern void +operator delete(void *p, std::size_t sz) noexcept (true) +{ + (*user_data->cxx_malloc->oper_delete_sz) (p, sz); +} + +extern void +operator delete[](void *p, std::size_t sz) noexcept (true) +{ + (*user_data->cxx_malloc->oper_delete___sz) (p, sz); +} + +extern void * +operator new(std::size_t sz, std::align_val_t al) noexcept (false) +{ + return (*user_data->cxx_malloc->oper_new_al) (sz, al); +} + +extern void * +operator new[](std::size_t sz, std::align_val_t al) noexcept (false) +{ + return (*user_data->cxx_malloc->oper_new___al) (sz, al); +} + +extern void +operator delete(void *p, std::align_val_t al) noexcept (true) +{ + (*user_data->cxx_malloc->oper_delete_al) (p, al); +} + +extern void +operator delete[](void *p, std::align_val_t al) noexcept (true) +{ + (*user_data->cxx_malloc->oper_delete___al) (p, al); +} + +extern void +operator delete(void *p, std::size_t sz, std::align_val_t al) noexcept (true) +{ + (*user_data->cxx_malloc->oper_delete_sz_al) (p, sz, al); +} + +extern void +operator delete[](void *p, std::size_t sz, std::align_val_t al) noexcept (true) +{ + (*user_data->cxx_malloc->oper_delete___sz_al) (p, sz, al); +} + extern void * operator new(std::size_t sz, const std::nothrow_t &nt) noexcept (true) { @@ -89,4 +165,27 @@ operator delete[](void *p, const std::nothrow_t &nt) noexcept (true) { (*user_data->cxx_malloc->oper_delete___nt) (p, nt); } +extern void * +operator new(std::size_t sz, std::align_val_t al, const std::nothrow_t &nt) noexcept (true) +{ + return (*user_data->cxx_malloc->oper_new_al_nt) (sz, al, nt); +} + +extern void * +operator new[](std::size_t sz, std::align_val_t al, const std::nothrow_t &nt) noexcept (true) +{ + return (*user_data->cxx_malloc->oper_new___al_nt) (sz, al, nt); +} + +extern void +operator delete(void *p, std::align_val_t al, const std::nothrow_t &nt) noexcept (true) +{ + (*user_data->cxx_malloc->oper_delete_al_nt) (p, al, nt); +} + +extern void +operator delete[](void *p, std::align_val_t al, const std::nothrow_t &nt) noexcept (true) +{ + (*user_data->cxx_malloc->oper_delete___al_nt) (p, al, nt); +} |