summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorBenjamin Kramer <benny.kra@googlemail.com>2012-01-12 17:37:18 +0000
committerBenjamin Kramer <benny.kra@googlemail.com>2012-01-12 17:37:18 +0000
commit9ece950ddb1555a08bf8a0b6813ea330dbe6dae8 (patch)
tree799099ffc684f48a5251fdca083e9de4ebda4f5d /llvm/lib
parent6073e31baa3af760adbf4ec1688d6fb51bf89e0c (diff)
downloadbcm5719-llvm-9ece950ddb1555a08bf8a0b6813ea330dbe6dae8.tar.gz
bcm5719-llvm-9ece950ddb1555a08bf8a0b6813ea330dbe6dae8.zip
After Jakob's r147938 exception handling on i386 was completely broken.
Restore the (obviously wrong) behavior from before r147938 without relying on undefined behavior. Add a fat FIXME note. This should fix nightly tester failures. llvm-svn: 148030
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/X86/X86FrameLowering.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/X86FrameLowering.cpp b/llvm/lib/Target/X86/X86FrameLowering.cpp
index 4cda76c0a41..c2f2c1ffef4 100644
--- a/llvm/lib/Target/X86/X86FrameLowering.cpp
+++ b/llvm/lib/Target/X86/X86FrameLowering.cpp
@@ -455,6 +455,13 @@ encodeCompactUnwindRegistersWithFrame(unsigned SavedRegs[CU_NUM_SAVED_REGS],
};
const unsigned *CURegs = (Is64Bit ? CU64BitRegs : CU32BitRegs);
+ // FIXME: The code below is WRONG and breaks tests on i386, see
+ // SingleSource/Regression/C++/EH/ctor_dtor_count.exec
+ // SingleSource/Regression/C++/EH/exception_spec_test.exec
+ // SingleSource/Regression/C++/EH/function_try_block.exec
+ // SingleSource/Regression/C++/EH/throw_rethrow_test.exec
+ return ~0U;
+
// Encode the registers in the order they were saved, 3-bits per register. The
// registers are numbered from 1 to 6.
uint32_t RegEnc = 0;
OpenPOWER on IntegriCloud