diff options
-rw-r--r-- | clang/lib/Tooling/Tooling.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/clang/lib/Tooling/Tooling.cpp b/clang/lib/Tooling/Tooling.cpp index c22ad93c760..a106154f4b2 100644 --- a/clang/lib/Tooling/Tooling.cpp +++ b/clang/lib/Tooling/Tooling.cpp @@ -411,10 +411,14 @@ int ClangTool::run(ToolAction *Action) { // This just needs to be some symbol in the binary. static int StaticSymbol; - llvm::SmallString<128> InitialDirectory; - if (std::error_code EC = llvm::sys::fs::current_path(InitialDirectory)) + std::string InitialDirectory; + if (llvm::ErrorOr<std::string> CWD = + OverlayFileSystem->getCurrentWorkingDirectory()) { + InitialDirectory = std::move(*CWD); + } else { llvm::report_fatal_error("Cannot detect current path: " + - Twine(EC.message())); + Twine(CWD.getError().message())); + } // First insert all absolute paths into the in-memory VFS. These are global // for all compile commands. |