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) {}