[EH] Keep filter clauses for types that have been caught.
authorAndrew Kaylor <andrew.kaylor@intel.com>
Tue, 17 Nov 2015 20:13:04 +0000 (20:13 +0000)
committerAndrew Kaylor <andrew.kaylor@intel.com>
Tue, 17 Nov 2015 20:13:04 +0000 (20:13 +0000)
commit881fcaec6be08d821de7df42fdbc99779717f59f
treefa6e3faf8f46d3147441cd5c42120c4ce1358bdc
parente570abc428db5f78f839040f164dd6f6e8a3c6c0
[EH] Keep filter clauses for types that have been caught.

The instruction combiner previously removed types from filter clauses in Landing Pad instructions if the type had previously been seen in a catch clause.  This is incorrect and prevents unexpected exception handlers from rethrowing the caught type.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253370 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Transforms/InstCombine/InstructionCombining.cpp
test/Transforms/InstCombine/LandingPadClauses.ll