VisualStudio project files updated.  #include <algorithm> added to make VisualStudio happy.  Also had to undefine setjmp because of #include <csetjmp> turning setjmp into _setjmp in VisualStudio.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49743 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Transforms/Utils/LowerInvoke.cpp b/lib/Transforms/Utils/LowerInvoke.cpp
index 884f4fc..3d356b7 100644
--- a/lib/Transforms/Utils/LowerInvoke.cpp
+++ b/lib/Transforms/Utils/LowerInvoke.cpp
@@ -143,7 +143,22 @@
                                       Constant::getNullValue(PtrJBList),
                                       "llvm.sjljeh.jblist", &M);
     }
+
+// VisualStudio defines setjmp as _setjmp via #include <csetjmp> / <setjmp.h>, 
+// so it looks like Intrinsic::_setjmp
+#if defined(_MSC_VER) && defined(setjmp)
+#define setjmp_undefined_for_visual_studio
+#undef setjmp
+#endif
+
     SetJmpFn = Intrinsic::getDeclaration(&M, Intrinsic::setjmp);
+
+#if defined(_MSC_VER) && defined(setjmp_undefined_for_visual_studio)
+// let's return it to _setjmp state in case anyone ever needs it after this 
+// point under VisualStudio
+#define setjmp _setjmp 
+#endif
+
     LongJmpFn = Intrinsic::getDeclaration(&M, Intrinsic::longjmp);
   }