diff options
Diffstat (limited to 'contrib/llvm-project/clang/lib/ARCMigrate/FileRemapper.cpp')
-rw-r--r-- | contrib/llvm-project/clang/lib/ARCMigrate/FileRemapper.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/contrib/llvm-project/clang/lib/ARCMigrate/FileRemapper.cpp b/contrib/llvm-project/clang/lib/ARCMigrate/FileRemapper.cpp index 0222583c015b..f536af1795ed 100644 --- a/contrib/llvm-project/clang/lib/ARCMigrate/FileRemapper.cpp +++ b/contrib/llvm-project/clang/lib/ARCMigrate/FileRemapper.cpp @@ -190,6 +190,21 @@ bool FileRemapper::overwriteOriginal(DiagnosticsEngine &Diag, return false; } +void FileRemapper::forEachMapping( + llvm::function_ref<void(StringRef, StringRef)> CaptureFile, + llvm::function_ref<void(StringRef, const llvm::MemoryBufferRef &)> + CaptureBuffer) const { + for (auto &Mapping : FromToMappings) { + if (const FileEntry *FE = Mapping.second.dyn_cast<const FileEntry *>()) { + CaptureFile(Mapping.first->getName(), FE->getName()); + continue; + } + CaptureBuffer( + Mapping.first->getName(), + Mapping.second.get<llvm::MemoryBuffer *>()->getMemBufferRef()); + } +} + void FileRemapper::applyMappings(PreprocessorOptions &PPOpts) const { for (MappingsTy::const_iterator I = FromToMappings.begin(), E = FromToMappings.end(); I != E; ++I) { |