aboutsummaryrefslogtreecommitdiff
path: root/contrib/llvm-project/clang/lib/ARCMigrate/ObjCMT.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/llvm-project/clang/lib/ARCMigrate/ObjCMT.cpp')
-rw-r--r--contrib/llvm-project/clang/lib/ARCMigrate/ObjCMT.cpp39
1 files changed, 16 insertions, 23 deletions
diff --git a/contrib/llvm-project/clang/lib/ARCMigrate/ObjCMT.cpp b/contrib/llvm-project/clang/lib/ARCMigrate/ObjCMT.cpp
index 51c4a460cc25..68a51a49c718 100644
--- a/contrib/llvm-project/clang/lib/ARCMigrate/ObjCMT.cpp
+++ b/contrib/llvm-project/clang/lib/ARCMigrate/ObjCMT.cpp
@@ -156,7 +156,7 @@ protected:
return WhiteListFilenames.find(llvm::sys::path::filename(Path))
!= WhiteListFilenames.end();
}
- bool canModifyFile(const FileEntry *FE) {
+ bool canModifyFile(Optional<FileEntryRef> FE) {
if (!FE)
return false;
return canModifyFile(FE->getName());
@@ -164,7 +164,7 @@ protected:
bool canModifyFile(FileID FID) {
if (FID.isInvalid())
return false;
- return canModifyFile(PP.getSourceManager().getFileEntryForID(FID));
+ return canModifyFile(PP.getSourceManager().getFileEntryRefForID(FID));
}
bool canModify(const Decl *D) {
@@ -1964,7 +1964,7 @@ void ObjCMigrateASTConsumer::HandleTranslationUnit(ASTContext &Ctx) {
I = rewriter.buffer_begin(), E = rewriter.buffer_end(); I != E; ++I) {
FileID FID = I->first;
RewriteBuffer &buf = I->second;
- const FileEntry *file = Ctx.getSourceManager().getFileEntryForID(FID);
+ Optional<FileEntryRef> file = Ctx.getSourceManager().getFileEntryRefForID(FID);
assert(file);
SmallString<512> newText;
llvm::raw_svector_ostream vecOS(newText);
@@ -2034,12 +2034,10 @@ MigrateSourceAction::CreateASTConsumer(CompilerInstance &CI, StringRef InFile) {
namespace {
struct EditEntry {
- const FileEntry *File;
- unsigned Offset;
- unsigned RemoveLen;
+ Optional<FileEntryRef> File;
+ unsigned Offset = 0;
+ unsigned RemoveLen = 0;
std::string Text;
-
- EditEntry() : File(), Offset(), RemoveLen() {}
};
} // end anonymous namespace
@@ -2056,12 +2054,8 @@ template<> struct DenseMapInfo<EditEntry> {
return Entry;
}
static unsigned getHashValue(const EditEntry& Val) {
- llvm::FoldingSetNodeID ID;
- ID.AddPointer(Val.File);
- ID.AddInteger(Val.Offset);
- ID.AddInteger(Val.RemoveLen);
- ID.AddString(Val.Text);
- return ID.ComputeHash();
+ return (unsigned)llvm::hash_combine(Val.File, Val.Offset, Val.RemoveLen,
+ Val.Text);
}
static bool isEqual(const EditEntry &LHS, const EditEntry &RHS) {
return LHS.File == RHS.File &&
@@ -2133,9 +2127,8 @@ private:
StringRef Val = ValueString->getValue(ValueStorage);
if (Key == "file") {
- auto FE = FileMgr.getFile(Val);
- if (FE)
- Entry.File = *FE;
+ if (auto File = FileMgr.getOptionalFileRef(Val))
+ Entry.File = File;
else
Ignore = true;
} else if (Key == "offset") {
@@ -2161,7 +2154,7 @@ static bool reportDiag(const Twine &Err, DiagnosticsEngine &Diag) {
return true;
}
-static std::string applyEditsToTemp(const FileEntry *FE,
+static std::string applyEditsToTemp(FileEntryRef FE,
ArrayRef<EditEntry> Edits,
FileManager &FileMgr,
DiagnosticsEngine &Diag) {
@@ -2205,8 +2198,8 @@ static std::string applyEditsToTemp(const FileEntry *FE,
SmallString<64> TempPath;
int FD;
- if (fs::createTemporaryFile(path::filename(FE->getName()),
- path::extension(FE->getName()).drop_front(), FD,
+ if (fs::createTemporaryFile(path::filename(FE.getName()),
+ path::extension(FE.getName()).drop_front(), FD,
TempPath)) {
reportDiag("Could not create file: " + TempPath.str(), Diag);
return std::string();
@@ -2234,7 +2227,7 @@ bool arcmt::getFileRemappingsFromFileList(
new DiagnosticsEngine(DiagID, new DiagnosticOptions,
DiagClient, /*ShouldOwnClient=*/false));
- typedef llvm::DenseMap<const FileEntry *, std::vector<EditEntry> >
+ typedef llvm::DenseMap<FileEntryRef, std::vector<EditEntry> >
FileEditEntriesTy;
FileEditEntriesTy FileEditEntries;
@@ -2256,7 +2249,7 @@ bool arcmt::getFileRemappingsFromFileList(
if (!Insert.second)
continue;
- FileEditEntries[Entry.File].push_back(Entry);
+ FileEditEntries[*Entry.File].push_back(Entry);
}
}
@@ -2269,7 +2262,7 @@ bool arcmt::getFileRemappingsFromFileList(
continue;
}
- remap.emplace_back(std::string(I->first->getName()), TempFile);
+ remap.emplace_back(std::string(I->first.getName()), TempFile);
}
return hasErrorOccurred;