OSDN Git Service

Don't promote asynch EH invokes of nounwind functions to calls
authorReid Kleckner <reid@kleckner.net>
Wed, 11 Feb 2015 01:23:16 +0000 (01:23 +0000)
committerReid Kleckner <reid@kleckner.net>
Wed, 11 Feb 2015 01:23:16 +0000 (01:23 +0000)
commit690248bf52b4812d581313848e35cb11199d40e7
tree5bce1c5229d21ff7365654029c6252582ca66994
parent9f5d593c1f61db2d8a5fc52835435570d26f1118
Don't promote asynch EH invokes of nounwind functions to calls

If the landingpad of the invoke is using a personality function that
catches asynch exceptions, then it can catch a trap.

Also add some landingpads to invalid LLVM IR test cases that lack them.

Over-the-shoulder reviewed by David Majnemer.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@228782 91177308-0d34-0410-b5e6-96231b3b80d8
13 files changed:
docs/LangRef.rst
include/llvm/Analysis/LibCallSemantics.h
lib/Analysis/LibCallSemantics.cpp
lib/CodeGen/WinEHPrepare.cpp
lib/Transforms/IPO/PruneEH.cpp
lib/Transforms/InstCombine/InstructionCombining.cpp
lib/Transforms/Utils/Local.cpp
test/Feature/seh-nounwind.ll [new file with mode: 0644]
test/Other/2009-03-31-CallGraph.ll
test/Transforms/PruneEH/2003-11-21-PHIUpdate.ll [deleted file]
test/Transforms/PruneEH/seh-nounwind.ll [new file with mode: 0644]
test/Transforms/SimplifyCFG/2007-11-22-InvokeNoUnwind.ll
test/Transforms/SimplifyCFG/seh-nounwind.ll [new file with mode: 0644]