From 7560356a832fbf3741a9f1be7ebb3886eead289e Mon Sep 17 00:00:00 2001 From: Jan Svoboda Date: Sat, 9 Sep 2023 13:33:43 -0700 Subject: [PATCH] [clang] NFCI: Use `FileEntryRef` in `FileRemapper` (2/2) --- clang/include/clang/ARCMigrate/FileRemapper.h | 4 +-- clang/lib/ARCMigrate/FileRemapper.cpp | 28 ++++++++++--------- 2 files changed, 17 insertions(+), 15 deletions(-) diff --git a/clang/include/clang/ARCMigrate/FileRemapper.h b/clang/include/clang/ARCMigrate/FileRemapper.h index 776ac4700b73..ceb3e67b5035 100644 --- a/clang/include/clang/ARCMigrate/FileRemapper.h +++ b/clang/include/clang/ARCMigrate/FileRemapper.h @@ -33,7 +33,7 @@ class FileRemapper { // FIXME: Reuse the same FileManager for multiple ASTContexts. std::unique_ptr FileMgr; - typedef llvm::PointerUnion Target; + typedef llvm::PointerUnion Target; using MappingsTy = llvm::DenseMap; MappingsTy FromToMappings; @@ -67,7 +67,7 @@ public: private: void remap(FileEntryRef file, std::unique_ptr memBuf); - void remap(FileEntryRef file, const FileEntry *newfile); + void remap(FileEntryRef file, FileEntryRef newfile); OptionalFileEntryRef getOriginalFile(StringRef filePath); void resetTarget(Target &targ); diff --git a/clang/lib/ARCMigrate/FileRemapper.cpp b/clang/lib/ARCMigrate/FileRemapper.cpp index 413caf1e9653..bd8317e0a245 100644 --- a/clang/lib/ARCMigrate/FileRemapper.cpp +++ b/clang/lib/ARCMigrate/FileRemapper.cpp @@ -60,7 +60,7 @@ bool FileRemapper::initFromFile(StringRef filePath, DiagnosticsEngine &Diag, if (!llvm::sys::fs::exists(infoFile)) return false; - std::vector > pairs; + std::vector> pairs; llvm::ErrorOr> fileBuf = llvm::MemoryBuffer::getFile(infoFile, /*IsText=*/true); @@ -84,7 +84,7 @@ bool FileRemapper::initFromFile(StringRef filePath, DiagnosticsEngine &Diag, continue; return report("File does not exist: " + fromFilename, Diag); } - llvm::ErrorOr newFE = FileMgr->getFile(toFilename); + auto newFE = FileMgr->getOptionalFileRef(toFilename); if (!newFE) { if (ignoreIfFilesChanged) continue; @@ -134,8 +134,9 @@ bool FileRemapper::flushToFile(StringRef outputPath, DiagnosticsEngine &Diag) { infoOut << origPath << '\n'; infoOut << (uint64_t)origFE.getModificationTime() << '\n'; - if (const FileEntry *FE = I->second.dyn_cast()) { - SmallString<200> newPath = StringRef(FE->getName()); + if (I->second.is()) { + auto FE = I->second.get(); + SmallString<200> newPath = StringRef(FE.getName()); fs::make_absolute(newPath); infoOut << newPath << '\n'; } else { @@ -153,10 +154,10 @@ bool FileRemapper::flushToFile(StringRef outputPath, DiagnosticsEngine &Diag) { newOut.write(mem->getBufferStart(), mem->getBufferSize()); newOut.close(); - auto newE = FileMgr->getFile(tempPath); + auto newE = FileMgr->getOptionalFileRef(tempPath); if (newE) { remap(origFE, *newE); - infoOut << (*newE)->getName() << '\n'; + infoOut << newE->getName() << '\n'; } } } @@ -196,8 +197,9 @@ void FileRemapper::forEachMapping( llvm::function_ref CaptureBuffer) const { for (auto &Mapping : FromToMappings) { - if (const FileEntry *FE = Mapping.second.dyn_cast()) { - CaptureFile(Mapping.first.getName(), FE->getName()); + if (Mapping.second.is()) { + auto FE = Mapping.second.get(); + CaptureFile(Mapping.first.getName(), FE.getName()); continue; } CaptureBuffer( @@ -209,8 +211,9 @@ void FileRemapper::forEachMapping( void FileRemapper::applyMappings(PreprocessorOptions &PPOpts) const { for (MappingsTy::const_iterator I = FromToMappings.begin(), E = FromToMappings.end(); I != E; ++I) { - if (const FileEntry *FE = I->second.dyn_cast()) { - PPOpts.addRemappedFile(I->first.getName(), FE->getName()); + if (I->second.is()) { + auto FE = I->second.get(); + PPOpts.addRemappedFile(I->first.getName(), FE.getName()); } else { llvm::MemoryBuffer *mem = I->second.get(); PPOpts.addRemappedFile(I->first.getName(), mem); @@ -234,8 +237,7 @@ void FileRemapper::remap(FileEntryRef file, targ = memBuf.release(); } -void FileRemapper::remap(FileEntryRef file, const FileEntry *newfile) { - assert(newfile); +void FileRemapper::remap(FileEntryRef file, FileEntryRef newfile) { Target &targ = FromToMappings[file]; resetTarget(targ); targ = newfile; @@ -263,7 +265,7 @@ void FileRemapper::resetTarget(Target &targ) { if (llvm::MemoryBuffer *oldmem = targ.dyn_cast()) { delete oldmem; } else { - const FileEntry *toFE = targ.get(); + FileEntryRef toFE = targ.get(); ToFromMappings.erase(toFE); } }