Compiling llvm+clang v3.5 with Visual Studio 2015

I have been using Visual Studio 2012 to compile llvm+clang v3.5 without any problems. Recently, the build team decided to upgrade VS2012 to VS2015, and now instead of 0 errors, there are 25 errors during VS2015 compilation. For example:

v3.5\src\include\llvm/ADT/IntrusiveRefCntPtr.h(158): error C2248: ‘llvm::IntrusiveRefCntPtr<anonymous-namespace'::ChainedIncludesSource>::Obj': cannot access private member declared in class 'llvm::IntrusiveRefCntPtr<anonymous-namespace’::ChainedIncludesSource>’

Just curious anybody has tried this combination?

Thanks,

OK, actually not too bad, just need to patch 5 files:

llvm_clang/v3.5/src/include/llvm/ADT/IntrusiveRefCntPtr.h
llvm_clang/v3.5/src/include/llvm/CodeGen/PBQP/CostAllocator.h
llvm_clang/v3.5/src/include/llvm/CodeGen/PBQP/Math.h
llvm_clang/v3.5/src/include/llvm/CodeGen/PBQP/RegAllocSolver.h
llvm_clang/v3.5/src/tools/clang/lib/Serialization/ASTWriter.cpp

— llvm_clang/v3.5/src/include/llvm/ADT/IntrusiveRefCntPtr.h 2015-10-03 12:00:11.000000000 -0700
+++ llvm_clang/v3.5/src/include/llvm/ADT/IntrusiveRefCntPtr.h 2015-10-03 12:00:11.000000000 -0700
@@ -197,6 +197,9 @@
private:
void retain() { if (Obj) IntrusiveRefCntPtrInfo::retain(Obj); }
void release() { if (Obj) IntrusiveRefCntPtrInfo::release(Obj); }