projects
/
oota-llvm.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[WinEH] Add cleanupendpad instruction
[oota-llvm.git]
/
lib
/
Transforms
/
Utils
/
InlineFunction.cpp
diff --git
a/lib/Transforms/Utils/InlineFunction.cpp
b/lib/Transforms/Utils/InlineFunction.cpp
index 22d86c4fdc0be2af41dea9260415da2df80a5114..e884176093f6cf9be0bc9d22d4a81abefa12a056 100644
(file)
--- a/
lib/Transforms/Utils/InlineFunction.cpp
+++ b/
lib/Transforms/Utils/InlineFunction.cpp
@@
-328,6
+328,12
@@
static void HandleInlinedEHPad(InvokeInst *II, BasicBlock *FirstNewBlock,
CEPI->eraseFromParent();
UpdatePHINodes(BB);
}
CEPI->eraseFromParent();
UpdatePHINodes(BB);
}
+ } else if (auto *CEPI = dyn_cast<CleanupEndPadInst>(I)) {
+ if (CEPI->unwindsToCaller()) {
+ CleanupEndPadInst::Create(CEPI->getCleanupPad(), UnwindDest, CEPI);
+ CEPI->eraseFromParent();
+ UpdatePHINodes(BB);
+ }
} else if (auto *TPI = dyn_cast<TerminatePadInst>(I)) {
if (TPI->unwindsToCaller()) {
SmallVector<Value *, 3> TerminatePadArgs;
} else if (auto *TPI = dyn_cast<TerminatePadInst>(I)) {
if (TPI->unwindsToCaller()) {
SmallVector<Value *, 3> TerminatePadArgs;