llvm/lib
David Majnemer e759b51ef4 [WinEH] Don't inline an 'unwinds to caller' cleanupret into funclets which locally unwind
It is problematic if the inlinee has a cleanupret which unwinds to
caller and we inline it into a call site which doesn't unwind.

If the funclet unwinds anywhere other than to the caller,
then we will give the funclet two unwind destinations.
This will result in a verifier failure.

Seeing as how the caller wasn't an invoke (which would locally unwind)
and that the funclet cannot unwind to caller, we must conclude that an
'unwind to caller' cleanupret is dynamically unreachable.

This fixes PR26698.

Differential Revision: http://reviews.llvm.org/D17536

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@261656 91177308-0d34-0410-b5e6-96231b3b80d8
2016-02-23 17:11:04 +00:00
..
Analysis [PM] Remove an overly aggressive assert now that I can actually test the 2016-02-23 10:47:57 +00:00
AsmParser
Bitcode
CodeGen Supporting all entities declared in lexical scope in LLVM debug info. 2016-02-23 13:36:51 +00:00
DebugInfo
ExecutionEngine
Fuzzer
IR
IRReader
LibDriver
LineEditor
Linker
LTO
MC
Object
Option
Passes
ProfileData Add prefix based function layout when profile is available. 2016-02-23 03:39:24 +00:00
Support Assert when trying to seek un-seekable raw_fd_ostream. 2016-02-23 07:17:58 +00:00
TableGen
Target [AArch64] Fix fastcc -tailcallopt epilog code generation. 2016-02-23 16:54:36 +00:00
Transforms [WinEH] Don't inline an 'unwinds to caller' cleanupret into funclets which locally unwind 2016-02-23 17:11:04 +00:00
CMakeLists.txt
LLVMBuild.txt