diff options
Diffstat (limited to 'contrib/llvm/tools/clang/lib/ARCMigrate/FileRemapper.cpp')
-rw-r--r-- | contrib/llvm/tools/clang/lib/ARCMigrate/FileRemapper.cpp | 43 |
1 files changed, 11 insertions, 32 deletions
diff --git a/contrib/llvm/tools/clang/lib/ARCMigrate/FileRemapper.cpp b/contrib/llvm/tools/clang/lib/ARCMigrate/FileRemapper.cpp index a14226e..40e6060 100644 --- a/contrib/llvm/tools/clang/lib/ARCMigrate/FileRemapper.cpp +++ b/contrib/llvm/tools/clang/lib/ARCMigrate/FileRemapper.cpp @@ -36,8 +36,7 @@ void FileRemapper::clear(StringRef outputDir) { assert(ToFromMappings.empty()); if (!outputDir.empty()) { std::string infoFile = getRemapInfoFile(outputDir); - bool existed; - llvm::sys::fs::remove(infoFile, existed); + llvm::sys::fs::remove(infoFile); } } @@ -65,13 +64,14 @@ bool FileRemapper::initFromFile(StringRef filePath, DiagnosticsEngine &Diag, return false; std::vector<std::pair<const FileEntry *, const FileEntry *> > pairs; - - OwningPtr<llvm::MemoryBuffer> fileBuf; - if (llvm::MemoryBuffer::getFile(infoFile.c_str(), fileBuf)) + + llvm::ErrorOr<std::unique_ptr<llvm::MemoryBuffer>> fileBuf = + llvm::MemoryBuffer::getFile(infoFile.c_str()); + if (!fileBuf) return report("Error opening file: " + infoFile, Diag); SmallVector<StringRef, 64> lines; - fileBuf->getBuffer().split(lines, "\n"); + fileBuf.get()->getBuffer().split(lines, "\n"); for (unsigned idx = 0; idx+3 <= lines.size(); idx += 3) { StringRef fromFilename = lines[idx]; @@ -112,8 +112,7 @@ bool FileRemapper::initFromFile(StringRef filePath, DiagnosticsEngine &Diag, bool FileRemapper::flushToDisk(StringRef outputDir, DiagnosticsEngine &Diag) { using namespace llvm::sys; - bool existed; - if (fs::create_directory(outputDir, existed) != llvm::errc::success) + if (fs::create_directory(outputDir)) return report("Could not create directory: " + outputDir, Diag); std::string infoFile = getRemapInfoFile(outputDir); @@ -125,8 +124,7 @@ bool FileRemapper::flushToFile(StringRef outputPath, DiagnosticsEngine &Diag) { std::string errMsg; std::string infoFile = outputPath; - llvm::raw_fd_ostream infoOut(infoFile.c_str(), errMsg, - llvm::sys::fs::F_Binary); + llvm::raw_fd_ostream infoOut(infoFile.c_str(), errMsg, llvm::sys::fs::F_None); if (!errMsg.empty()) return report(errMsg, Diag); @@ -182,8 +180,7 @@ bool FileRemapper::overwriteOriginal(DiagnosticsEngine &Diag, Diag); std::string errMsg; - llvm::raw_fd_ostream Out(origFE->getName(), errMsg, - llvm::sys::fs::F_Binary); + llvm::raw_fd_ostream Out(origFE->getName(), errMsg, llvm::sys::fs::F_None); if (!errMsg.empty()) return report(errMsg, Diag); @@ -210,22 +207,6 @@ void FileRemapper::applyMappings(PreprocessorOptions &PPOpts) const { PPOpts.RetainRemappedFileBuffers = true; } -void FileRemapper::transferMappingsAndClear(PreprocessorOptions &PPOpts) { - for (MappingsTy::iterator - I = FromToMappings.begin(), E = FromToMappings.end(); I != E; ++I) { - if (const FileEntry *FE = I->second.dyn_cast<const FileEntry *>()) { - PPOpts.addRemappedFile(I->first->getName(), FE->getName()); - } else { - llvm::MemoryBuffer *mem = I->second.get<llvm::MemoryBuffer *>(); - PPOpts.addRemappedFile(I->first->getName(), mem); - } - I->second = Target(); - } - - PPOpts.RetainRemappedFileBuffers = false; - clear(); -} - void FileRemapper::remap(StringRef filePath, llvm::MemoryBuffer *memBuf) { remap(getOriginalFile(filePath), memBuf); } @@ -272,9 +253,7 @@ void FileRemapper::resetTarget(Target &targ) { } bool FileRemapper::report(const Twine &err, DiagnosticsEngine &Diag) { - SmallString<128> buf; - unsigned ID = Diag.getDiagnosticIDs()->getCustomDiagID(DiagnosticIDs::Error, - err.toStringRef(buf)); - Diag.Report(ID); + Diag.Report(Diag.getCustomDiagID(DiagnosticsEngine::Error, "%0")) + << err.str(); return true; } |