merge r104420 104423

llvm-svn: 104429
diff --git a/llvm-gcc-4.2/gcc/llvm-convert.cpp b/llvm-gcc-4.2/gcc/llvm-convert.cpp
index bf47256..4ae1971 100644
--- a/llvm-gcc-4.2/gcc/llvm-convert.cpp
+++ b/llvm-gcc-4.2/gcc/llvm-convert.cpp
@@ -5950,6 +5950,16 @@
         return false;
       }
     }
+#if defined(TARGET_ARM) && defined(CONFIG_DARWIN_H)
+    Value *Buf = Emit(TREE_VALUE(arglist), 0);
+    Buf = Builder.CreateBitCast(Buf, Type::getInt8Ty(Context)->getPointerTo());
+    Builder.CreateCall(Intrinsic::getDeclaration(TheModule,
+                                                 Intrinsic::eh_sjlj_longjmp),
+                      Buf);
+    Result = 0;
+    return true;
+#endif
+    // Fall-through
   }
   case BUILT_IN_APPLY_ARGS:
   case BUILT_IN_APPLY: