[llvm-commits] [llvm] r148030 - /llvm/trunk/lib/Target/X86/X86FrameLowering.cpp

Benjamin Kramer benny.kra at googlemail.com
Thu Jan 12 09:37:19 PST 2012


Author: d0k
Date: Thu Jan 12 11:37:18 2012
New Revision: 148030

URL: http://llvm.org/viewvc/llvm-project?rev=148030&view=rev
Log:
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.

Modified:
    llvm/trunk/lib/Target/X86/X86FrameLowering.cpp

Modified: llvm/trunk/lib/Target/X86/X86FrameLowering.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86FrameLowering.cpp?rev=148030&r1=148029&r2=148030&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86FrameLowering.cpp (original)
+++ llvm/trunk/lib/Target/X86/X86FrameLowering.cpp Thu Jan 12 11:37:18 2012
@@ -455,6 +455,13 @@
   };
   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;





More information about the llvm-commits mailing list