Add standard throw() spec to delete operators.

Without these specs, clang will reports mismatch between standard definitions and these declarations/definitions. These specs are ignored when compiled with -fno-exceptions.

BUG: 17136236
Change-Id: I386c712a61dc4fc74dfde45f9ec2d3d037f2e9f1
This commit is contained in:
Chih-Hung Hsieh 2014-08-25 12:08:19 -07:00 committed by Chih-hung Hsieh
parent a4a8c4feb8
commit ae558d6b4b
2 changed files with 10 additions and 10 deletions

View File

@ -38,11 +38,11 @@ void* operator new[](std::size_t size) {
return p;
}
void operator delete(void* ptr) {
void operator delete(void* ptr) throw() {
free(ptr);
}
void operator delete[](void* ptr) {
void operator delete[](void* ptr) throw() {
free(ptr);
}
@ -54,10 +54,10 @@ void* operator new[](std::size_t size, const std::nothrow_t&) {
return malloc(size);
}
void operator delete(void* ptr, const std::nothrow_t&) {
void operator delete(void* ptr, const std::nothrow_t&) throw() {
free(ptr);
}
void operator delete[](void* ptr, const std::nothrow_t&) {
void operator delete[](void* ptr, const std::nothrow_t&) throw() {
free(ptr);
}

View File

@ -13,19 +13,19 @@ namespace std {
void* operator new(std::size_t);
void* operator new[](std::size_t);
void operator delete(void*);
void operator delete[](void*);
void operator delete(void*) throw();
void operator delete[](void*) throw();
void* operator new(std::size_t, const std::nothrow_t&);
void* operator new[](std::size_t, const std::nothrow_t&);
void operator delete(void*, const std::nothrow_t&);
void operator delete[](void*, const std::nothrow_t&);
void operator delete(void*, const std::nothrow_t&) throw();
void operator delete[](void*, const std::nothrow_t&) throw();
inline void* operator new(std::size_t, void* p) { return p; }
inline void* operator new[](std::size_t, void* p) { return p; }
// these next two are not really required, since exceptions are off
inline void operator delete(void*, void*) { }
inline void operator delete[](void*, void*) { }
inline void operator delete(void*, void*) throw() { }
inline void operator delete[](void*, void*) throw() { }
} // extern C++