]> granicus.if.org Git - clang/commitdiff
[VFS] Wire up driver VFS through tooling.
authorBenjamin Kramer <benny.kra@googlemail.com>
Fri, 9 Oct 2015 13:03:25 +0000 (13:03 +0000)
committerBenjamin Kramer <benny.kra@googlemail.com>
Fri, 9 Oct 2015 13:03:25 +0000 (13:03 +0000)
Sadly I don't currently have a way to tests this as the driver is always
initialized with the default triple and finding system headers is system
specific.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@249831 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Tooling/Tooling.cpp

index b44371c09b4e24c98be74852070fbc8e164cb640..220b62558bfbcbc9036e5adb01f745a4d95ecc72 100644 (file)
@@ -46,10 +46,11 @@ FrontendActionFactory::~FrontendActionFactory() {}
 // it to be based on the same framework.
 
 /// \brief Builds a clang driver initialized for running clang tools.
-static clang::driver::Driver *newDriver(clang::DiagnosticsEngine *Diagnostics,
-                                        const char *BinaryName) {
+static clang::driver::Driver *newDriver(
+    clang::DiagnosticsEngine *Diagnostics, const char *BinaryName,
+    IntrusiveRefCntPtr<vfs::FileSystem> VFS) {
   clang::driver::Driver *CompilerDriver = new clang::driver::Driver(
-      BinaryName, llvm::sys::getDefaultTargetTriple(), *Diagnostics);
+      BinaryName, llvm::sys::getDefaultTargetTriple(), *Diagnostics, VFS);
   CompilerDriver->setTitle("clang_based_tool");
   return CompilerDriver;
 }
@@ -238,7 +239,7 @@ bool ToolInvocation::run() {
       DiagConsumer ? DiagConsumer : &DiagnosticPrinter, false);
 
   const std::unique_ptr<clang::driver::Driver> Driver(
-      newDriver(&Diagnostics, BinaryName));
+      newDriver(&Diagnostics, BinaryName, Files->getVirtualFileSystem()));
   // Since the input might only be virtual, don't check whether it exists.
   Driver->setCheckInputsExist(false);
   const std::unique_ptr<clang::driver::Compilation> Compilation(