diff --git a/clang/lib/Tooling/Tooling.cpp b/clang/lib/Tooling/Tooling.cpp index 4fa98aa2bfee..fa2374f5e30d 100644 --- a/clang/lib/Tooling/Tooling.cpp +++ b/clang/lib/Tooling/Tooling.cpp @@ -237,7 +237,10 @@ ClangTool::ClangTool(const CompilationDatabase &Compilations, ArrayRef SourcePaths) : Files((FileSystemOptions())) { llvm::SmallString<1024> BaseDirectory; - llvm::sys::fs::current_path(BaseDirectory); + if (const char *PWD = ::getenv("PWD")) + BaseDirectory = PWD; + else + llvm::sys::fs::current_path(BaseDirectory); for (unsigned I = 0, E = SourcePaths.size(); I != E; ++I) { llvm::SmallString<1024> File(getAbsolutePath( SourcePaths[I], BaseDirectory));