[WinEH] Fix 32-bit funclet epilogues in the presence of dynamic allocas
authorReid Kleckner <rnk@google.com>
Wed, 7 Oct 2015 23:55:01 +0000 (23:55 +0000)
committerReid Kleckner <rnk@google.com>
Wed, 7 Oct 2015 23:55:01 +0000 (23:55 +0000)
commit964d1fe44b6f578e0e4bcb36c120c1a4749ff12d
treeeb58b466e4892bf2bc9a69c52d1e284048d9af60
parente6fb099e982239ba55af9006e8647687416aa34e
[WinEH] Fix 32-bit funclet epilogues in the presence of dynamic allocas

In particular, passing non-trivially copyable objects by value on win32
uses a dynamic alloca (inalloca). We would clobber ESP in the epilogue
and end up returning to outer space.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@249637 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86FrameLowering.cpp
test/CodeGen/X86/cleanuppad-inalloca.ll [new file with mode: 0644]