diff --git a/indra/llappearance/llwearabletype.cpp b/indra/llappearance/llwearabletype.cpp
index d1db03c46ce40473a6c3dfb93d81ab957015eb59..65b5eacc67193ac73eef434a1d6e978ca3fe4afa 100644
--- a/indra/llappearance/llwearabletype.cpp
+++ b/indra/llappearance/llwearabletype.cpp
@@ -78,7 +78,7 @@ class LLWearableDictionary : public LLSingleton<LLWearableDictionary>,
 // [RLVa:KB] - Checked: 2010-03-03 (RLVa-1.2.0a) | Added: RLVa-1.2.0a
 protected:
 	// The default implementation asserts on 'notFound()' and returns -1 which isn't a valid EWearableType
-	virtual LLWearableType::EType notFound() const { return LLWearableType::WT_INVALID; }
+	virtual LLWearableType::EType notFound() const override { return LLWearableType::WT_INVALID; }
 // [/RLVa:KB]
 };
 
diff --git a/indra/llcommon/llexception.cpp b/indra/llcommon/llexception.cpp
index 482dd938a1cb1d7062e72578849ef92f9c4e09e0..e8b8937d488491124ad5380123fefa860fa5da20 100644
--- a/indra/llcommon/llexception.cpp
+++ b/indra/llcommon/llexception.cpp
@@ -20,6 +20,7 @@
 #ifdef LL_CLANG
 #pragma clang diagnostic push
 #pragma clang diagnostic ignored "-Wdelete-non-abstract-non-virtual-dtor"
+#pragma clang diagnostic ignored "-Wpotentially-evaluated-expression"
 #endif
 #include <boost/exception/diagnostic_information.hpp>
 #ifdef LL_CLANG
diff --git a/indra/llcorehttp/_thread.h b/indra/llcorehttp/_thread.h
index 7cd55258049813f48ad50ebe2f137c39fd75a954..f7ceaab554c6a3a6e3de12666b0933dc9bc84b19 100644
--- a/indra/llcorehttp/_thread.h
+++ b/indra/llcorehttp/_thread.h
@@ -34,6 +34,7 @@
 #pragma clang diagnostic push
 #pragma clang diagnostic ignored "-Wdeprecated-declarations"
 #pragma clang diagnostic ignored "-Wdelete-non-abstract-non-virtual-dtor"
+#pragma clang diagnostic ignored "-Wpotentially-evaluated-expression"
 #endif
 #include <boost/thread.hpp>
 #ifdef LL_CLANG
diff --git a/indra/llprimitive/llmodel.cpp b/indra/llprimitive/llmodel.cpp
index 159ebab06ab67827e6e725daa14ccf7db1fd06f7..51a1ccbafa06e73b70e1d8344120a5a98b71f01d 100644
--- a/indra/llprimitive/llmodel.cpp
+++ b/indra/llprimitive/llmodel.cpp
@@ -1679,7 +1679,7 @@ LLSD LLModel::Decomposition::asLLSD() const
         {
 			std::set<U64> valid;
 
-			llassert(!mHull[i].empty());
+			llassert(!i.empty());
 
 			for (auto j : i)
             {
diff --git a/indra/llxml/llcontrol.cpp b/indra/llxml/llcontrol.cpp
index 18d7d1e7502b2d95fd5cba288a6d3299285ef363..fb82d351d6fbd545a502f7fd9cfa882dfbccf441 100644
--- a/indra/llxml/llcontrol.cpp
+++ b/indra/llxml/llcontrol.cpp
@@ -50,6 +50,7 @@
 #ifdef LL_CLANG
 #pragma clang diagnostic push
 #pragma clang diagnostic ignored "-Wdelete-non-abstract-non-virtual-dtor"
+#pragma clang diagnostic ignored "-Wpotentially-evaluated-expression"
 #endif
 #include <boost/exception/diagnostic_information.hpp> 
 #ifdef LL_CLANG
@@ -356,7 +357,7 @@ void LLControlVariable::firePropertyChanged(const LLSD &pPreviousValue)
 	{
 		mCommitSignal(this, mValues.back(), pPreviousValue);
 	}
-	catch (boost::exception &ex)
+	catch (const boost::exception &ex)
 	{
 		LL_WARNS("LLControlVariable") << getName() << " commit signal threw exception. " << boost::diagnostic_information(ex) << LL_ENDL;
 	}
diff --git a/indra/newview/llagentcamera.cpp b/indra/newview/llagentcamera.cpp
index 4f0580d4f6e7119e037c0135f3f3f734cae6f20f..8dbcef2d8e66b03b26a3e1471f72d8ba150c8ac8 100644
--- a/indra/newview/llagentcamera.cpp
+++ b/indra/newview/llagentcamera.cpp
@@ -1958,10 +1958,10 @@ LLVector3d LLAgentCamera::calcCameraPositionTargetGlobal(BOOL *hit_limit)
 		//     F     |      T       | skip av    => slam focus
 		//     F     |      F       | clamp focus then av
 		bool fCamAvDistClamped, fCamAvDistLocked = false; float nCamAvDistLimitMin, nCamAvDistLimitMax;
-		if (fCamAvDistClamped = RlvActions::getCameraAvatarDistanceLimits(nCamAvDistLimitMin, nCamAvDistLimitMax))
+		if ((fCamAvDistClamped = RlvActions::getCameraAvatarDistanceLimits(nCamAvDistLimitMin, nCamAvDistLimitMax)))
 			fCamAvDistLocked = nCamAvDistLimitMin == nCamAvDistLimitMax;
 		bool fCamOriginDistClamped, fCamOriginDistLocked = false; float nCamOriginDistLimitMin, nCamOriginDistLimitMax;
-		if (fCamOriginDistClamped = RlvActions::getCameraOriginDistanceLimits(nCamOriginDistLimitMin, nCamOriginDistLimitMax))
+		if ((fCamOriginDistClamped = RlvActions::getCameraOriginDistanceLimits(nCamOriginDistLimitMin, nCamOriginDistLimitMax)))
 			fCamOriginDistLocked = nCamOriginDistLimitMin == nCamOriginDistLimitMax;
 
 		// Check focus distance limits
diff --git a/indra/newview/llattachmentsmgr.cpp b/indra/newview/llattachmentsmgr.cpp
index c6cbd4ddebd7c39da7491b2dbe9848f6116b63fc..2862b8b2260e93c588bfb53b2eaa4c62e30131ee 100644
--- a/indra/newview/llattachmentsmgr.cpp
+++ b/indra/newview/llattachmentsmgr.cpp
@@ -44,7 +44,6 @@
 const F32 COF_LINK_BATCH_TIME = 5.0F;
 const F32 MAX_ATTACHMENT_REQUEST_LIFETIME = 30.0F;
 const F32 MIN_RETRY_REQUEST_TIME = 5.0F;
-const F32 MAX_BAD_COF_TIME = 30.0F;
 
 // [SL:KB] - Patch: Appearance-SyncAttach | Checked: Catznip-3.7
 class LLRegisterAttachmentCallback : public LLRequestServerAppearanceUpdateOnDestroy
diff --git a/indra/newview/llavatarlist.cpp b/indra/newview/llavatarlist.cpp
index d59e0a22d4ac7a68bc5db47e2406d6f0184ba961..ece0d98740bc974eef1b2a5507d333fe74a709c9 100644
--- a/indra/newview/llavatarlist.cpp
+++ b/indra/newview/llavatarlist.cpp
@@ -143,10 +143,10 @@ LLAvatarList::LLAvatarList(const Params& p)
 , mShowSpeakingIndicator(p.show_speaking_indicator)
 , mShowPermissions(p.show_permissions_granted)
 , mShowCompleteName(false)
-, mLITUpdateTimer(nullptr)
 // [RLVa:KB] - Checked: RLVa-1.2.0
 , mRlvCheckShowNames(false)
 // [/RLVa:KB]
+, mLITUpdateTimer(nullptr)
 {
 	setCommitOnSelectionChange(true);
 
diff --git a/indra/newview/llchathistory.cpp b/indra/newview/llchathistory.cpp
index 22cd45eff4ebd007800654c89541555154dcae72..13c0789a7bb95f2059b09d0c805e1b1ac3a429a8 100644
--- a/indra/newview/llchathistory.cpp
+++ b/indra/newview/llchathistory.cpp
@@ -117,10 +117,6 @@ class LLChatHistoryHeader final : public LLPanel
 public:
 	LLChatHistoryHeader()
 	:	LLPanel(),
-// [RLVa:KB] - Checked: 2010-04-22 (RLVa-1.2.2a) | Added: RLVa-1.2.0f
-		mShowContextMenu(true), 
-		mShowInfoCtrl(true),
-// [/RLVa:KB]
 		mPopupMenuHandleAvatar(),
 		mPopupMenuHandleObject(),
 		mInfoCtrl(nullptr),
@@ -128,6 +124,10 @@ public:
 		mSourceType(CHAT_SOURCE_UNKNOWN),
 		mFrom(),
 		mSessionID(),
+// [RLVa:KB] - Checked: 2010-04-22 (RLVa-1.2.2a) | Added: RLVa-1.2.0f
+		mShowContextMenu(true), 
+		mShowInfoCtrl(true),
+// [/RLVa:KB]
 		mMinUserNameWidth(0),
 		mUserNameFont(nullptr),
 		mUserNameTextBox(nullptr),
diff --git a/indra/newview/llvoavatarself.cpp b/indra/newview/llvoavatarself.cpp
index 74f5e63ef149f717fbcc8a8bc00070309c8ec9b1..d19be2fc3ea34bb41cb6976da4619cebda28909c 100644
--- a/indra/newview/llvoavatarself.cpp
+++ b/indra/newview/llvoavatarself.cpp
@@ -159,12 +159,12 @@ LLVOAvatarSelf::LLVOAvatarSelf(const LLUUID& id,
 							   const LLPCode pcode,
 							   LLViewerRegion* regionp) :
 	LLVOAvatar(id, pcode, regionp),
-// [RLVa:KB] - Checked: 2012-07-28 (RLVa-1.4.7)
-	mAttachmentSignal(NULL),
-// [/RLVa:KB]
 	mLastRegionHandle(0),
 	mRegionCrossingCount(0),
-	mScreenp(NULL),
+// [RLVa:KB] - Checked: 2012-07-28 (RLVa-1.4.7)
+	mAttachmentSignal(nullptr),
+// [/RLVa:KB]
+	mScreenp(nullptr),
 	// Value outside legal range, so will always be a mismatch the
 	// first time through.
 	mLastHoverOffsetSent(LLVector3(0.0f, 0.0f, -999.0f)),
diff --git a/indra/newview/rlvactions.cpp b/indra/newview/rlvactions.cpp
index f5c5dc52a6ef18ece4eae1823d320e27a0c9d77a..7a53e594bc14d1484456d9f4fb3d9351703009e4 100644
--- a/indra/newview/rlvactions.cpp
+++ b/indra/newview/rlvactions.cpp
@@ -214,6 +214,7 @@ bool RlvActions::canShowName(EShowNamesContext eContext, const LLUUID& idAgent)
 				return (gRlvHandler.isException(RLV_BHVR_SHOWNAMETAGS, idAgent)) || (gAgentID == idAgent);
 			// Show/hide avatar name
 			case SNC_DEFAULT:
+			case SNC_COUNT:
 			case SNC_TELEPORTOFFER:
 			case SNC_TELEPORTREQUEST:
 				return gRlvHandler.isException(RLV_BHVR_SHOWNAMES, idAgent) || (gAgentID == idAgent);
diff --git a/indra/newview/rlvhandler.cpp b/indra/newview/rlvhandler.cpp
index 4e1495b50f61eac372eef7e39fcb63b035fe4efd..456592367ec2d3f38a9826f824bc8a25f995de9f 100644
--- a/indra/newview/rlvhandler.cpp
+++ b/indra/newview/rlvhandler.cpp
@@ -136,7 +136,7 @@ static bool rlvParseGetStatusOption(const std::string& strOption, std::string& s
 //
 
 // Checked: 2010-04-07 (RLVa-1.2.0d) | Modified: RLVa-1.0.1d
-RlvHandler::RlvHandler() : m_fCanCancelTp(true), m_posSitSource(), m_pGCTimer(NULL)
+RlvHandler::RlvHandler() : m_pGCTimer(NULL), m_fCanCancelTp(true), m_posSitSource()
 {
 	gAgent.addListener(this, "new group");
 
diff --git a/indra/newview/rlvhandler.h b/indra/newview/rlvhandler.h
index 85acec1bcebc757a72b30b8a5892e23bafa4f999..c433c13d22470d9472e7fa46efaed3a101a7a698 100644
--- a/indra/newview/rlvhandler.h
+++ b/indra/newview/rlvhandler.h
@@ -18,16 +18,17 @@
 #define RLV_HANDLER_H
 
 #include "llgroupmgr.h"
+#include "llviewertexture.h"
 #include <stack>
 
 #include "rlvcommon.h"
 #include "rlvhelper.h"
 
+
  // ============================================================================
  // Forward declarations
  //
 
-class LLViewerFetchedTexture;
 
 // ============================================================================
 
diff --git a/indra/newview/rlvhelper.cpp b/indra/newview/rlvhelper.cpp
index 4a4ab3c7c0b43787a1b994b4a855b21b24efb538..a7d246293a742ad473d470d56af9132eada87c98 100644
--- a/indra/newview/rlvhelper.cpp
+++ b/indra/newview/rlvhelper.cpp
@@ -612,7 +612,7 @@ bool RlvBehaviourModifier::convertOptionValue(const std::string& optionValue, Rl
 RlvCommand::RlvCommand(const LLUUID& idObj, const std::string& strCommand)
 	: m_fValid(false), m_idObj(idObj), m_pBhvrInfo(NULL), m_eParamType(RLV_TYPE_UNKNOWN), m_fStrict(false), m_fRefCounted(false)
 {
-	if (m_fValid = parseCommand(strCommand, m_strBehaviour, m_strOption, m_strParam))
+	if ((m_fValid = parseCommand(strCommand, m_strBehaviour, m_strOption, m_strParam)))
 	{
 		S32 nTemp = 0;
 		if ( ("n" == m_strParam) || ("add" == m_strParam) )
diff --git a/indra/newview/rlvhelper.h b/indra/newview/rlvhelper.h
index 6cf2c5c62ebc886f22ba952ffb039e75dc212fe3..4f31b88bcfbe99843727bcdac8c86dcfc422c5cd 100644
--- a/indra/newview/rlvhelper.h
+++ b/indra/newview/rlvhelper.h
@@ -62,7 +62,7 @@ public:
 	};
 
 	RlvBehaviourInfo(std::string strBhvr, ERlvBehaviour eBhvr, U32 maskParamType, U32 nBhvrFlags = 0)
-		: m_strBhvr(strBhvr), m_eBhvr(eBhvr), m_maskParamType(maskParamType), m_nBhvrFlags(nBhvrFlags) {}
+		: m_strBhvr(strBhvr), m_eBhvr(eBhvr), m_nBhvrFlags(nBhvrFlags), m_maskParamType(maskParamType) {}
 	virtual ~RlvBehaviourInfo() {}
 
 	const std::string&	getBehaviour() const      { return m_strBhvr; }
@@ -150,7 +150,7 @@ template<> struct RlvCommandHandlerBaseImpl<RLV_TYPE_REPLY>  { static ERlvCmdRet
 //
 // RlvCommandHandler - The actual command handler (Note that a handler is more general than a processor; a handler can - for instance - be used by multiple processors)
 //
-#if LL_WINDOWS
+#if LL_MSVC && !defined(LL_CLANG)
 	#define RLV_TEMPL_FIX(x) template<x>
 #else
 	#define RLV_TEMPL_FIX(x) template<typename Placeholder = int>
diff --git a/indra/newview/rlvinventory.h b/indra/newview/rlvinventory.h
index 1279dff2f85bdbb670050ac848df3066ee773cec..743e38dc1b4aca39efce80e9ebfec0442e89550b 100644
--- a/indra/newview/rlvinventory.h
+++ b/indra/newview/rlvinventory.h
@@ -34,14 +34,14 @@ class LLOfferInfo;
 // RlvInventory class declaration
 //
 
-class RlvInventory : public LLSingleton<RlvInventory>, public LLInventoryObserver
+class RlvInventory final : public LLSingleton<RlvInventory>, public LLInventoryObserver
 {
 	LLSINGLETON(RlvInventory);
 public:
 	~RlvInventory();
 
 	// LLInventoryObserver override
-	/*virtual*/ void changed(U32 mask);
+	void changed(U32 mask) override;
 
 	/*
 	 * #RLV Shared inventory
@@ -162,7 +162,7 @@ protected:
 class RlvGiveToRLVAgentOffer : public LLInventoryFetchDescendentsObserver, RlvGiveToRLVOffer
 {
 public:
-	RlvGiveToRLVAgentOffer(const LLUUID& idFolder) : RlvGiveToRLVOffer(), LLInventoryFetchDescendentsObserver(idFolder) {}
+	RlvGiveToRLVAgentOffer(const LLUUID& idFolder) : LLInventoryFetchDescendentsObserver(idFolder), RlvGiveToRLVOffer()  {}
 	/*virtual*/ ~RlvGiveToRLVAgentOffer() {}
 public:
 	/*virtual*/ void done();
diff --git a/indra/newview/rlvlocks.cpp b/indra/newview/rlvlocks.cpp
index 746338685385f4b0b6f776992734ca0da03c1b7a..61e185b89a102ba510aa532103b3196f72af4674 100644
--- a/indra/newview/rlvlocks.cpp
+++ b/indra/newview/rlvlocks.cpp
@@ -931,7 +931,7 @@ class RlvLockedDescendentsCollector : public LLInventoryCollectFunctor
 {
 public:
 	RlvLockedDescendentsCollector(int eSourceTypeMask, RlvFolderLocks::ELockPermission ePermMask, ERlvLockMask eLockTypeMask) 
-		: m_eSourceTypeMask(eSourceTypeMask), m_ePermMask(ePermMask), m_eLockTypeMask(eLockTypeMask) {}
+		: m_ePermMask(ePermMask), m_eSourceTypeMask(eSourceTypeMask), m_eLockTypeMask(eLockTypeMask) {}
 	/*virtual*/ ~RlvLockedDescendentsCollector() {}
 	/*virtual*/ bool operator()(LLInventoryCategory* pFolder, LLInventoryItem* pItem)
 	{
@@ -945,7 +945,7 @@ protected:
 
 // Checked: 2011-03-28 (RLVa-1.3.0g) | Modified: RLVa-1.3.0g
 RlvFolderLocks::RlvFolderLocks()
-	: m_fLookupDirty(false), m_RootLockType(RLV_LOCK_NONE), m_cntLockAdd(0), m_cntLockRem(0)
+	: m_cntLockAdd(0), m_cntLockRem(0), m_fLookupDirty(false), m_RootLockType(RLV_LOCK_NONE)
 {
 	LLOutfitObserver::instance().addCOFChangedCallback(boost::bind(&RlvFolderLocks::onNeedsLookupRefresh, this));
 	RlvInventory::instance().addSharedRootIDChangedCallback(boost::bind(&RlvFolderLocks::onNeedsLookupRefresh, this));