[llvm-commits] [llvm-gcc-4.0] r43098 - /llvm-gcc-4.0/trunk/gcc/llvm-convert.cpp

Bill Wendling isanbard at gmail.com
Wed Oct 17 15:10:14 PDT 2007


Author: void
Date: Wed Oct 17 17:10:14 2007
New Revision: 43098

URL: http://llvm.org/viewvc/llvm-project?rev=43098&view=rev
Log:
When ObjC is using SJLJ exceptions, don't create an unwind basic block

Modified:
    llvm-gcc-4.0/trunk/gcc/llvm-convert.cpp

Modified: llvm-gcc-4.0/trunk/gcc/llvm-convert.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.0/trunk/gcc/llvm-convert.cpp?rev=43098&r1=43097&r2=43098&view=diff

==============================================================================
--- llvm-gcc-4.0/trunk/gcc/llvm-convert.cpp (original)
+++ llvm-gcc-4.0/trunk/gcc/llvm-convert.cpp Wed Oct 17 17:10:14 2007
@@ -2777,7 +2777,9 @@
   // Do not turn intrinsic calls or no-throw calls into invokes.
   if ((!isa<Function>(Callee) || !cast<Function>(Callee)->getIntrinsicID()) &&
       // Turn calls that throw that are inside of a cleanup scope into invokes.
-      !CurrentEHScopes.empty() && tree_could_throw_p(exp)) {
+      !CurrentEHScopes.empty() && tree_could_throw_p(exp) &&
+      // Don't generate the unwind block for ObjC if it's using SJLJ exceptions.
+      !(c_dialect_objc() && flag_objc_sjlj_exceptions)) {
     if (UnwindBB == 0)
       UnwindBB = new BasicBlock("Unwind");
     UnwindBlock = UnwindBB;





More information about the llvm-commits mailing list