Index: cfe/trunk/include/clang/Frontend/Utils.h =================================================================== --- cfe/trunk/include/clang/Frontend/Utils.h +++ cfe/trunk/include/clang/Frontend/Utils.h @@ -184,10 +184,11 @@ /// /// \return A CompilerInvocation, or 0 if none was built for the given /// argument vector. -std::unique_ptr -createInvocationFromCommandLine(ArrayRef Args, - IntrusiveRefCntPtr Diags = - IntrusiveRefCntPtr()); +std::unique_ptr createInvocationFromCommandLine( + ArrayRef Args, + IntrusiveRefCntPtr Diags = + IntrusiveRefCntPtr(), + IntrusiveRefCntPtr VFS = nullptr); /// Return the value of the last argument as an integer, or a default. If Diags /// is non-null, emits an error if the argument is given, but non-integral. Index: cfe/trunk/lib/Frontend/ASTUnit.cpp =================================================================== --- cfe/trunk/lib/Frontend/ASTUnit.cpp +++ cfe/trunk/lib/Frontend/ASTUnit.cpp @@ -1638,7 +1638,7 @@ &StoredDiagnostics, nullptr); CI = clang::createInvocationFromCommandLine( - llvm::makeArrayRef(ArgBegin, ArgEnd), Diags); + llvm::makeArrayRef(ArgBegin, ArgEnd), Diags, VFS); if (!CI) return nullptr; } Index: cfe/trunk/lib/Frontend/CreateInvocationFromCommandLine.cpp =================================================================== --- cfe/trunk/lib/Frontend/CreateInvocationFromCommandLine.cpp +++ cfe/trunk/lib/Frontend/CreateInvocationFromCommandLine.cpp @@ -31,8 +31,8 @@ /// \return A CompilerInvocation, or 0 if none was built for the given /// argument vector. std::unique_ptr clang::createInvocationFromCommandLine( - ArrayRef ArgList, - IntrusiveRefCntPtr Diags) { + ArrayRef ArgList, IntrusiveRefCntPtr Diags, + IntrusiveRefCntPtr VFS) { if (!Diags.get()) { // No diagnostics engine was provided, so create our own diagnostics object // with the default options. @@ -46,7 +46,7 @@ // FIXME: We shouldn't have to pass in the path info. driver::Driver TheDriver(Args[0], llvm::sys::getDefaultTargetTriple(), - *Diags); + *Diags, VFS); // Don't check that inputs exist, they may have been remapped. TheDriver.setCheckInputsExist(false);