From 25a658440dd6f66d64cc146a09ff0725d355bf5c Mon Sep 17 00:00:00 2001
From: Nat Goodspeed <nat@lindenlab.com>
Date: Thu, 25 Oct 2018 11:07:43 -0400
Subject: [PATCH] DRTVWR-476: Remove throw(T) from operator new(), operator
 delete().

llcorehttp's test_allocator.{h,cpp} overrides global operator new(), operator
new[](), operator delete() and operator delete[](). The two operator new()
functions used to be declared with throw(std::bad_alloc). Worse, for VS 2013
and previous, we needed _THROW0() and _THROW1(std::bad_alloc) instead,
requiring #if logic.

But with dynamic throw declarations deprecated, we must actually remove those.
That obviates the THROW_BAD_ALLOC() / THROW_NOTHING() workarounds in
test_allocator.cpp.
---
 indra/llcorehttp/tests/test_allocator.cpp | 18 ++++--------------
 indra/llcorehttp/tests/test_allocator.h   | 11 ++---------
 2 files changed, 6 insertions(+), 23 deletions(-)

diff --git a/indra/llcorehttp/tests/test_allocator.cpp b/indra/llcorehttp/tests/test_allocator.cpp
index ea12dc58eb1..597e0d2fc9a 100644
--- a/indra/llcorehttp/tests/test_allocator.cpp
+++ b/indra/llcorehttp/tests/test_allocator.cpp
@@ -43,16 +43,6 @@
 
 #include <boost/thread.hpp>
 
-
-#if	defined(WIN32)
-#define	THROW_BAD_ALLOC()	_THROW1(std::bad_alloc)
-#define	THROW_NOTHING()		_THROW0()
-#else
-#define	THROW_BAD_ALLOC()	throw(std::bad_alloc)
-#define	THROW_NOTHING()		throw()
-#endif
-
-
 struct BlockHeader
 {
 	struct Block * next;
@@ -152,19 +142,19 @@ std::size_t GetMemTotal()
 }
 
 
-void * operator new(std::size_t size) THROW_BAD_ALLOC()
+void * operator new(std::size_t size) //throw(std::bad_alloc)
 {
 	return GetMem( size );
 }
 
 
-void * operator new[](std::size_t size) THROW_BAD_ALLOC()
+void * operator new[](std::size_t size) //throw(std::bad_alloc)
 {
 	return GetMem( size );
 }
 
 
-void operator delete(void * p) THROW_NOTHING()
+void operator delete(void * p) throw()
 {
 	if (p)
 	{
@@ -173,7 +163,7 @@ void operator delete(void * p) THROW_NOTHING()
 }
 
 
-void operator delete[](void * p) THROW_NOTHING()
+void operator delete[](void * p) throw()
 {
 	if (p)
 	{
diff --git a/indra/llcorehttp/tests/test_allocator.h b/indra/llcorehttp/tests/test_allocator.h
index 3572bbc5c5f..74bd294e472 100644
--- a/indra/llcorehttp/tests/test_allocator.h
+++ b/indra/llcorehttp/tests/test_allocator.h
@@ -31,17 +31,10 @@
 #include <new>
 
 size_t GetMemTotal();
-#if	defined(WIN32)
-void * operator new(std::size_t size) _THROW1(std::bad_alloc);
-void * operator new[](std::size_t size) _THROW1(std::bad_alloc);
-void operator delete(void * p) _THROW0();
-void operator delete[](void * p) _THROW0();
-#else
-void * operator new(std::size_t size) throw (std::bad_alloc);
-void * operator new[](std::size_t size) throw (std::bad_alloc);
+void * operator new(std::size_t size);   //throw (std::bad_alloc);
+void * operator new[](std::size_t size); //throw (std::bad_alloc);
 void operator delete(void * p) throw ();
 void operator delete[](void * p) throw ();
-#endif
 
 #endif // TEST_ALLOCATOR_H
 
-- 
GitLab