OSDN Git Service

Functions calling __builtin_eh_return must have a frame pointer.
authorJakob Stoklund Olesen <stoklund@2pi.dk>
Fri, 22 Jun 2012 03:04:27 +0000 (03:04 +0000)
committerJakob Stoklund Olesen <stoklund@2pi.dk>
Fri, 22 Jun 2012 03:04:27 +0000 (03:04 +0000)
commite208c491726bb1efbfc4fc05a9f73ad808432979
tree637ae4364e73533108a26cfa2a7a81c9632da244
parente2b32bb20ee76f24708b3c9e19b6fbc651c25637
Functions calling __builtin_eh_return must have a frame pointer.

The code in X86TargetLowering::LowerEH_RETURN() assumes that a frame
pointer exists, but the frame pointer was forced by the presence of
llvm.eh.unwind.init which isn't guaranteed.

If llvm.eh.unwind.init is actually required in functions calling
eh.return (is it?), we should diagnose that instead of emitting bad
machine code.

This should fix the dragonegg-x86_64-linux-gcc-4.6-test bot.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158961 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86FrameLowering.cpp
test/CodeGen/X86/2008-08-31-EH_RETURN32.ll