Devirtualize EHScopeStack::Cleanup's dtor because it's never destroyed polymorphically

llvm-svn: 245378
diff --git a/clang/lib/CodeGen/MicrosoftCXXABI.cpp b/clang/lib/CodeGen/MicrosoftCXXABI.cpp
index c1a00d6..6b36987 100644
--- a/clang/lib/CodeGen/MicrosoftCXXABI.cpp
+++ b/clang/lib/CodeGen/MicrosoftCXXABI.cpp
@@ -851,7 +851,7 @@
 }
 
 namespace {
-struct CallEndCatchMSVC : EHScopeStack::Cleanup {
+struct CallEndCatchMSVC final : EHScopeStack::Cleanup {
   llvm::CatchPadInst *CPI;
 
   CallEndCatchMSVC(llvm::CatchPadInst *CPI) : CPI(CPI) {}
@@ -2252,7 +2252,7 @@
 }
 
 namespace {
-struct ResetGuardBit : EHScopeStack::Cleanup {
+struct ResetGuardBit final : EHScopeStack::Cleanup {
   llvm::GlobalVariable *Guard;
   unsigned GuardNum;
   ResetGuardBit(llvm::GlobalVariable *Guard, unsigned GuardNum)
@@ -2269,7 +2269,7 @@
   }
 };
 
-struct CallInitThreadAbort : EHScopeStack::Cleanup {
+struct CallInitThreadAbort final : EHScopeStack::Cleanup {
   llvm::GlobalVariable *Guard;
   CallInitThreadAbort(llvm::GlobalVariable *Guard) : Guard(Guard) {}