diff options
author | Benjamin Kramer <benny.kra@googlemail.com> | 2012-01-12 17:37:18 +0000 |
---|---|---|
committer | Benjamin Kramer <benny.kra@googlemail.com> | 2012-01-12 17:37:18 +0000 |
commit | e2eb92578a1c5c6b890d8c6db41bb6b4d2662625 (patch) | |
tree | 42ac4f400ce05a85a8e6c2dcaf185d075e930758 | |
parent | d2070b00efb97ee32e360d53edfd7bf6de88d62c (diff) | |
download | external_llvm-e2eb92578a1c5c6b890d8c6db41bb6b4d2662625.zip external_llvm-e2eb92578a1c5c6b890d8c6db41bb6b4d2662625.tar.gz external_llvm-e2eb92578a1c5c6b890d8c6db41bb6b4d2662625.tar.bz2 |
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148030 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Target/X86/X86FrameLowering.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/lib/Target/X86/X86FrameLowering.cpp b/lib/Target/X86/X86FrameLowering.cpp index 4cda76c..c2f2c1f 100644 --- a/lib/Target/X86/X86FrameLowering.cpp +++ b/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; |