diff --git a/include/clang/Basic/FileManager.h b/include/clang/Basic/FileManager.h index d14371d7a8..57f7d71660 100644 --- a/include/clang/Basic/FileManager.h +++ b/include/clang/Basic/FileManager.h @@ -197,9 +197,6 @@ public: /// \brief If path is not absolute and FileSystemOptions set the working /// directory, the path is modified to be relative to the given /// working directory. - static void FixupRelativePath(llvm::SmallVectorImpl &path, - const FileSystemOptions &FSOpts); - void FixupRelativePath(llvm::SmallVectorImpl &path) const; /// \brief Produce an array mapping from the unique IDs assigned to each diff --git a/lib/Basic/FileManager.cpp b/lib/Basic/FileManager.cpp index add4ec00b1..6512d76aae 100644 --- a/lib/Basic/FileManager.cpp +++ b/lib/Basic/FileManager.cpp @@ -450,22 +450,18 @@ FileManager::getVirtualFile(llvm::StringRef Filename, off_t Size, return UFE; } -void FileManager::FixupRelativePath(llvm::SmallVectorImpl &path, - const FileSystemOptions &FSOpts) { +void FileManager::FixupRelativePath(llvm::SmallVectorImpl &path) const { llvm::StringRef pathRef(path.data(), path.size()); - if (FSOpts.WorkingDir.empty() || llvm::sys::path::is_absolute(pathRef)) + if (FileSystemOpts.WorkingDir.empty() + || llvm::sys::path::is_absolute(pathRef)) return; - llvm::SmallString<128> NewPath(FSOpts.WorkingDir); + llvm::SmallString<128> NewPath(FileSystemOpts.WorkingDir); llvm::sys::path::append(NewPath, pathRef); path = NewPath; } -void FileManager::FixupRelativePath(llvm::SmallVectorImpl &path) const { - FixupRelativePath(path, FileSystemOpts); -} - llvm::MemoryBuffer *FileManager:: getBufferForFile(const FileEntry *Entry, std::string *ErrorStr) { llvm::OwningPtr Result; diff --git a/lib/Frontend/CompilerInstance.cpp b/lib/Frontend/CompilerInstance.cpp index 70d6fef295..b47da312a1 100644 --- a/lib/Frontend/CompilerInstance.cpp +++ b/lib/Frontend/CompilerInstance.cpp @@ -370,7 +370,7 @@ void CompilerInstance::clearOutputFiles(bool EraseFiles) { // If '-working-directory' was passed, the output filename should be // relative to that. - FileManager::FixupRelativePath(NewOutFile, getFileSystemOpts()); + FileMgr->FixupRelativePath(NewOutFile); if (llvm::error_code ec = llvm::sys::fs::rename(it->TempFilename, NewOutFile.str())) { getDiagnostics().Report(diag::err_fe_unable_to_rename_temp)