diff --git a/indra/llimage/llimagedxt.cpp b/indra/llimage/llimagedxt.cpp
index 36317a5ba883c39cd973549c308ba66a658e7f73..f88caca5da35a4eaed4a3e13c34b493b981698d7 100644
--- a/indra/llimage/llimagedxt.cpp
+++ b/indra/llimage/llimagedxt.cpp
@@ -167,10 +167,6 @@ LLImageDXT::LLImageDXT()
 {
 }
 
-LLImageDXT::~LLImageDXT()
-{
-}
-
 // virtual
 bool LLImageDXT::updateData()
 {
diff --git a/indra/llimage/llimagedxt.h b/indra/llimage/llimagedxt.h
index 6e7126c0cf53940da6cbbe2bbb50de977d3427b9..29d5f212d4874447189888e41433a7290479ff6d 100644
--- a/indra/llimage/llimagedxt.h
+++ b/indra/llimage/llimagedxt.h
@@ -90,7 +90,7 @@ class LLImageDXT final : public LLImageFormatted
 	};
 
 protected:
-	/*virtual*/ ~LLImageDXT();
+	/*virtual*/ ~LLImageDXT() = default;
 
 private:
 	bool encodeDXT(const LLImageRaw* raw_image, F32 decode_time, bool explicit_mips);
diff --git a/indra/llimage/llimagej2c.cpp b/indra/llimage/llimagej2c.cpp
index 71cab0554d78943faf8faf17a60f101c56c35ce6..2d70c11284ebacd4407c068335bb4dbc9d7b3c46 100644
--- a/indra/llimage/llimagej2c.cpp
+++ b/indra/llimage/llimagej2c.cpp
@@ -80,9 +80,6 @@ LLImageJ2C::LLImageJ2C() : 	LLImageFormatted(IMG_CODEC_J2C),
 	}
 }
 
-// virtual
-LLImageJ2C::~LLImageJ2C() {}
-
 // virtual
 void LLImageJ2C::resetLastError()
 {
@@ -442,10 +439,6 @@ void LLImageJ2C::updateRawDiscardLevel()
 	mRawDiscardLevel = mMaxBytes ? calcDiscardLevelBytes(mMaxBytes) : mDiscardLevel;
 }
 
-LLImageJ2CImpl::~LLImageJ2CImpl()
-{
-}
-
 //----------------------------------------------------------------------------------------------
 // Start of LLImageCompressionTester
 //----------------------------------------------------------------------------------------------
diff --git a/indra/llimage/llimagej2c.h b/indra/llimage/llimagej2c.h
index 1e1c91a306c3e46fae3b26fc6909d75e4e27f8ef..db86f5308d6d985282094a3edb8fd6f82e805b17 100644
--- a/indra/llimage/llimagej2c.h
+++ b/indra/llimage/llimagej2c.h
@@ -41,7 +41,7 @@ class LLImageCompressionTester ;
 class LLImageJ2C final : public LLImageFormatted
 {
 protected:
-	virtual ~LLImageJ2C();
+	virtual ~LLImageJ2C() = default;
 
 public:
 	LLImageJ2C();
@@ -106,7 +106,7 @@ class LLImageJ2C final : public LLImageFormatted
 class LLImageJ2CImpl
 {
 public:
-	virtual ~LLImageJ2CImpl();
+	virtual ~LLImageJ2CImpl() = default;
 protected:
 	// Find out the image size and number of channels.
 	// Return value:
diff --git a/indra/llimage/llimagepng.cpp b/indra/llimage/llimagepng.cpp
index c4b98d82603780527a2d0fc24e8d5969b3087ec9..5fddd7987eb8db5e4f4d73b59ff52d12bfaaedc7 100644
--- a/indra/llimage/llimagepng.cpp
+++ b/indra/llimage/llimagepng.cpp
@@ -40,10 +40,6 @@ LLImagePNG::LLImagePNG()
 {
 }
 
-LLImagePNG::~LLImagePNG()
-{
-}
-
 // Virtual
 // Parse PNG image information and set the appropriate
 // width, height and component (channel) information.
diff --git a/indra/llimage/llimagepng.h b/indra/llimage/llimagepng.h
index 109510ef9b49afe4378f17a5d8adec629c2222cb..8b6cede0a4fa0cd2bd86014ca20c05d10dfbb100 100644
--- a/indra/llimage/llimagepng.h
+++ b/indra/llimage/llimagepng.h
@@ -32,7 +32,7 @@
 class LLImagePNG final : public LLImageFormatted
 {
 protected:
-	~LLImagePNG();
+	~LLImagePNG() = default;
 
 public:
 	LLImagePNG();
diff --git a/indra/llimage/llimageworker.cpp b/indra/llimage/llimageworker.cpp
index 10688f0f68cc4ca04568589b2f2c18d04ddae191..c70dbdefba17dfaa75a88e315b5d1baed3792c38 100644
--- a/indra/llimage/llimageworker.cpp
+++ b/indra/llimage/llimageworker.cpp
@@ -92,10 +92,6 @@ S32 LLImageDecodeThread::tut_size()
 	return res;
 }
 
-LLImageDecodeThread::Responder::~Responder()
-{
-}
-
 //----------------------------------------------------------------------------
 
 LLImageDecodeThread::ImageRequest::ImageRequest(handle_t handle, LLImageFormatted* image, 
diff --git a/indra/llimage/llimageworker.h b/indra/llimage/llimageworker.h
index c6adfab327841d02f9dda86a987cc99a37932577..019331bc0a790f5ac363802845581b251e8173f0 100644
--- a/indra/llimage/llimageworker.h
+++ b/indra/llimage/llimageworker.h
@@ -37,7 +37,7 @@ class LLImageDecodeThread : public LLQueuedThread
 	class Responder : public LLThreadSafeRefCount
 	{
 	protected:
-		virtual ~Responder();
+		virtual ~Responder() = default;
 	public:
 		virtual void completed(bool success, LLImageRaw* raw, LLImageRaw* aux) = 0;
 	};
diff --git a/indra/llimagej2coj/llimagej2coj.cpp b/indra/llimagej2coj/llimagej2coj.cpp
index d1a2f9c8f784c50d3c219bbab0ee7c0db45ed89c..13c49a9675a7689413ed0dc2d8a582c68e41648f 100644
--- a/indra/llimagej2coj/llimagej2coj.cpp
+++ b/indra/llimagej2coj/llimagej2coj.cpp
@@ -100,10 +100,6 @@ LLImageJ2COJ::LLImageJ2COJ()
 }
 
 
-LLImageJ2COJ::~LLImageJ2COJ()
-{
-}
-
 bool LLImageJ2COJ::initDecode(LLImageJ2C &base, LLImageRaw &raw_image, int discard_level, int* region)
 {
 	// No specific implementation for this method in the OpenJpeg case
diff --git a/indra/llimagej2coj/llimagej2coj.h b/indra/llimagej2coj/llimagej2coj.h
index 02b9a11ea1a799376c517928f0eb42086427297b..6c0abc12f37c3db25ed594b01a16777281be7aa6 100644
--- a/indra/llimagej2coj/llimagej2coj.h
+++ b/indra/llimagej2coj/llimagej2coj.h
@@ -33,7 +33,7 @@ class LLImageJ2COJ final : public LLImageJ2CImpl
 {	
 public:
 	LLImageJ2COJ();
-	virtual ~LLImageJ2COJ();
+	virtual ~LLImageJ2COJ() = default;
 protected:
 	virtual bool getMetadata(LLImageJ2C &base);
 	virtual bool decodeImpl(LLImageJ2C &base, LLImageRaw &raw_image, F32 decode_time, S32 first_channel, S32 max_channel_count);