kernel: use non-deprecated signatures for new/delete operators.

add posix_memalign(), needed for c++17.
This commit is contained in:
Jérôme Duval
2018-05-28 20:49:15 +02:00
parent b3e749b0c1
commit 9e75e900da
3 changed files with 41 additions and 16 deletions
+15 -8
View File
@@ -23,14 +23,21 @@ typedef struct {} mynothrow_t;
extern const mynothrow_t mynothrow;
#ifndef __clang__
extern void* operator new(size_t size) throw (std::bad_alloc);
extern void* operator new[](size_t size) throw (std::bad_alloc);
extern void* operator new(size_t size, const std::nothrow_t &) throw ();
extern void* operator new[](size_t size, const std::nothrow_t &) throw ();
extern void* operator new(size_t size, const mynothrow_t &) throw ();
extern void* operator new[](size_t size, const mynothrow_t &) throw ();
extern void operator delete(void *ptr) throw ();
extern void operator delete[](void *ptr) throw ();
#if __cplusplus >= 201402L
#define _THROW(x)
#define _NOEXCEPT noexcept
#else
#define _THROW(x) throw (x)
#define _NOEXCEPT throw ()
#endif
extern void* operator new(size_t size) _THROW(std::bad_alloc);
extern void* operator new[](size_t size) _THROW(std::bad_alloc);
extern void* operator new(size_t size, const std::nothrow_t &) _NOEXCEPT;
extern void* operator new[](size_t size, const std::nothrow_t &) _NOEXCEPT;
extern void* operator new(size_t size, const mynothrow_t &) _NOEXCEPT;
extern void* operator new[](size_t size, const mynothrow_t &) _NOEXCEPT;
extern void operator delete(void *ptr) _NOEXCEPT;
extern void operator delete[](void *ptr) _NOEXCEPT;
#endif
#if __cplusplus >= 201402L