OSDN Git Service

[SEH] Ensure that empty __except blocks have their own BB
authorReid Kleckner <reid@kleckner.net>
Wed, 8 Jul 2015 18:08:52 +0000 (18:08 +0000)
committerReid Kleckner <reid@kleckner.net>
Wed, 8 Jul 2015 18:08:52 +0000 (18:08 +0000)
commitf0999f3b026a643942cdf1811f01c6fac502c646
treed94ef0653f28d310bc3f1cf156fb8b3ab2676ec2
parent1ba30c84d5afc21d994bc97a06c233c7f963026c
[SEH] Ensure that empty __except blocks have their own BB

The 32-bit lowering assumed that WinEHPrepare had this invariant.
WinEHPrepare did it for C++, but not SEH. The result was that we would
insert calls to llvm.x86.seh.restoreframe in normal basic blocks, which
corrupted the frame pointer.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@241699 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/WinEHPrepare.cpp
lib/Target/X86/X86WinEHState.cpp
test/CodeGen/WinEH/seh-simple.ll