Index: CMakeLists.txt
===================================================================
--- CMakeLists.txt	(revision 191300)
+++ CMakeLists.txt	(working copy)
@@ -22,6 +22,15 @@
   set_property(GLOBAL PROPERTY USE_FOLDERS ON)
 endif()
 
+if(MSVC AND NOT (${CMAKE_VERSION} VERSION_LESS 2.8.11))
+  # set stack reserved size to ~10MB
+  # CMake previously automatically set this value for MSVC builds, but the
+  # behavior was changed in CMake 2.8.11 (Issue 12437) to use the MSVC default
+  # value (1 MB) which is not enough for us in tasks such as parsing recursive
+  # C++ templates in Clang.
+  set(CMAKE_CXX_STACK_SIZE "10000000")
+endif()
+
 include(VersionFromVCS)
 
 option(LLVM_APPEND_VC_REV
