[WinEH] Don't perform state stores in cleanups

Our cleanups do not support true lexical nesting of funclets which
obviates the need to perform state stores.

This fixes PR26361.

llvm-svn: 259161
diff --git a/llvm/lib/Target/X86/X86WinEHState.cpp b/llvm/lib/Target/X86/X86WinEHState.cpp
index dce94a9..ee5da31 100644
--- a/llvm/lib/Target/X86/X86WinEHState.cpp
+++ b/llvm/lib/Target/X86/X86WinEHState.cpp
@@ -425,6 +425,10 @@
     BasicBlock *FuncletEntryBB = BBColors.front();
     if (auto *FuncletPad =
             dyn_cast<FuncletPadInst>(FuncletEntryBB->getFirstNonPHI())) {
+      // We do not support nesting funclets within cleanuppads.
+      if (isa<CleanupPadInst>(FuncletPad))
+        continue;
+
       auto BaseStateI = FuncInfo.FuncletBaseStateMap.find(FuncletPad);
       if (BaseStateI != FuncInfo.FuncletBaseStateMap.end())
         BaseState = BaseStateI->second;