diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Basic/FileManager.cpp | 37 | ||||
-rw-r--r-- | lib/Driver/ToolChains.cpp | 28 | ||||
-rw-r--r-- | lib/Frontend/CompilerInstance.cpp | 7 | ||||
-rw-r--r-- | lib/Lex/PTHLexer.cpp | 6 | ||||
-rw-r--r-- | lib/Serialization/ASTReader.cpp | 2 |
5 files changed, 34 insertions, 46 deletions
diff --git a/lib/Basic/FileManager.cpp b/lib/Basic/FileManager.cpp index 22a63decb9..488d4c3b8d 100644 --- a/lib/Basic/FileManager.cpp +++ b/lib/Basic/FileManager.cpp @@ -401,55 +401,54 @@ void FileManager::FixupRelativePath(llvm::sys::Path &path, llvm::MemoryBuffer *FileManager:: getBufferForFile(const FileEntry *Entry, std::string *ErrorStr) { + llvm::OwningPtr<llvm::MemoryBuffer> Result; llvm::error_code ec; if (FileSystemOpts.WorkingDir.empty()) { const char *Filename = Entry->getName(); // If the file is already open, use the open file descriptor. if (Entry->FD != -1) { - llvm::MemoryBuffer *Buf = - llvm::MemoryBuffer::getOpenFile(Entry->FD, Filename, ec, - Entry->getSize()); - if (Buf == 0 && ErrorStr) + ec = llvm::MemoryBuffer::getOpenFile(Entry->FD, Filename, Result, + Entry->getSize()); + if (ErrorStr) *ErrorStr = ec.message(); // getOpenFile will have closed the file descriptor, don't reuse or // reclose it. Entry->FD = -1; - return Buf; + return Result.take(); } // Otherwise, open the file. - llvm::MemoryBuffer *res = - llvm::MemoryBuffer::getFile(Filename, ec, Entry->getSize()); - if (res == 0 && ErrorStr) + ec = llvm::MemoryBuffer::getFile(Filename, Result, Entry->getSize()); + if (ec && ErrorStr) *ErrorStr = ec.message(); - return res; + return Result.take(); } llvm::sys::Path FilePath(Entry->getName()); FixupRelativePath(FilePath, FileSystemOpts); - llvm::MemoryBuffer *res = - llvm::MemoryBuffer::getFile(FilePath.c_str(), ec, Entry->getSize()); - if (res == 0 && ErrorStr) + ec = llvm::MemoryBuffer::getFile(FilePath.c_str(), Result, Entry->getSize()); + if (ec && ErrorStr) *ErrorStr = ec.message(); - return res; + return Result.take(); } llvm::MemoryBuffer *FileManager:: getBufferForFile(llvm::StringRef Filename, std::string *ErrorStr) { + llvm::OwningPtr<llvm::MemoryBuffer> Result; llvm::error_code ec; if (FileSystemOpts.WorkingDir.empty()) { - llvm::MemoryBuffer *res = llvm::MemoryBuffer::getFile(Filename, ec); - if (res == 0 && ErrorStr) + ec = llvm::MemoryBuffer::getFile(Filename, Result); + if (ec && ErrorStr) *ErrorStr = ec.message(); - return res; + return Result.take(); } llvm::sys::Path FilePath(Filename); FixupRelativePath(FilePath, FileSystemOpts); - llvm::MemoryBuffer *res = llvm::MemoryBuffer::getFile(FilePath.c_str(), ec); - if (res == 0 && ErrorStr) + ec = llvm::MemoryBuffer::getFile(FilePath.c_str(), Result); + if (ec && ErrorStr) *ErrorStr = ec.message(); - return res; + return Result.take(); } /// getStatValue - Get the 'stat' information for the specified path, using the diff --git a/lib/Driver/ToolChains.cpp b/lib/Driver/ToolChains.cpp index 9af6263319..e292c8fbba 100644 --- a/lib/Driver/ToolChains.cpp +++ b/lib/Driver/ToolChains.cpp @@ -1244,11 +1244,9 @@ static bool HasMultilib(llvm::Triple::ArchType Arch, enum LinuxDistro Distro) { } static LinuxDistro DetectLinuxDistro(llvm::Triple::ArchType Arch) { - llvm::error_code ec; - llvm::OwningPtr<const llvm::MemoryBuffer> - LsbRelease(llvm::MemoryBuffer::getFile("/etc/lsb-release", ec)); - if (LsbRelease) { - llvm::StringRef Data = LsbRelease.get()->getBuffer(); + llvm::OwningPtr<llvm::MemoryBuffer> File; + if (!llvm::MemoryBuffer::getFile("/etc/lsb-release", File)) { + llvm::StringRef Data = File.get()->getBuffer(); llvm::SmallVector<llvm::StringRef, 8> Lines; Data.split(Lines, "\n"); for (unsigned int i = 0, s = Lines.size(); i < s; ++ i) { @@ -1257,17 +1255,15 @@ static LinuxDistro DetectLinuxDistro(llvm::Triple::ArchType Arch) { else if (Lines[i] == "DISTRIB_CODENAME=lucid") return UbuntuLucid; else if (Lines[i] == "DISTRIB_CODENAME=jaunty") - return UbuntuJaunty; + return UbuntuJaunty; else if (Lines[i] == "DISTRIB_CODENAME=karmic") return UbuntuKarmic; } return UnknownDistro; } - llvm::OwningPtr<const llvm::MemoryBuffer> - RHRelease(llvm::MemoryBuffer::getFile("/etc/redhat-release", ec)); - if (RHRelease) { - llvm::StringRef Data = RHRelease.get()->getBuffer(); + if (!llvm::MemoryBuffer::getFile("/etc/redhat-release", File)) { + llvm::StringRef Data = File.get()->getBuffer(); if (Data.startswith("Fedora release 14 (Laughlin)")) return Fedora14; else if (Data.startswith("Fedora release 13 (Goddard)")) @@ -1275,10 +1271,8 @@ static LinuxDistro DetectLinuxDistro(llvm::Triple::ArchType Arch) { return UnknownDistro; } - llvm::OwningPtr<const llvm::MemoryBuffer> - DebianVersion(llvm::MemoryBuffer::getFile("/etc/debian_version", ec)); - if (DebianVersion) { - llvm::StringRef Data = DebianVersion.get()->getBuffer(); + if (!llvm::MemoryBuffer::getFile("/etc/debian_version", File)) { + llvm::StringRef Data = File.get()->getBuffer(); if (Data[0] == '5') return DebianLenny; else if (Data.startswith("squeeze/sid")) @@ -1286,10 +1280,8 @@ static LinuxDistro DetectLinuxDistro(llvm::Triple::ArchType Arch) { return UnknownDistro; } - llvm::OwningPtr<const llvm::MemoryBuffer> - SuseRelease(llvm::MemoryBuffer::getFile("/etc/SuSE-release", ec)); - if (SuseRelease) { - llvm::StringRef Data = SuseRelease.get()->getBuffer(); + if (!llvm::MemoryBuffer::getFile("/etc/SuSE-release", File)) { + llvm::StringRef Data = File.get()->getBuffer(); if (Data.startswith("openSUSE 11.3")) return OpenSuse11_3; return UnknownDistro; diff --git a/lib/Frontend/CompilerInstance.cpp b/lib/Frontend/CompilerInstance.cpp index d1e1e69184..d97e8c7727 100644 --- a/lib/Frontend/CompilerInstance.cpp +++ b/lib/Frontend/CompilerInstance.cpp @@ -487,9 +487,8 @@ bool CompilerInstance::InitializeSourceManager(llvm::StringRef InputFile, } SourceMgr.createMainFileID(File); } else { - llvm::error_code ec; - llvm::MemoryBuffer *SB = llvm::MemoryBuffer::getSTDIN(ec); - if (!SB) { + llvm::OwningPtr<llvm::MemoryBuffer> SB; + if (llvm::MemoryBuffer::getSTDIN(SB)) { // FIXME: Give ec.message() in this diag. Diags.Report(diag::err_fe_error_reading_stdin); return false; @@ -497,7 +496,7 @@ bool CompilerInstance::InitializeSourceManager(llvm::StringRef InputFile, const FileEntry *File = FileMgr.getVirtualFile(SB->getBufferIdentifier(), SB->getBufferSize(), 0); SourceMgr.createMainFileID(File); - SourceMgr.overrideFileContents(File, SB); + SourceMgr.overrideFileContents(File, SB.take()); } assert(!SourceMgr.getMainFileID().isInvalid() && diff --git a/lib/Lex/PTHLexer.cpp b/lib/Lex/PTHLexer.cpp index aeec3fcc25..975753bc23 100644 --- a/lib/Lex/PTHLexer.cpp +++ b/lib/Lex/PTHLexer.cpp @@ -437,11 +437,9 @@ static void InvalidPTH(Diagnostic &Diags, const char *Msg) { PTHManager *PTHManager::Create(const std::string &file, Diagnostic &Diags) { // Memory map the PTH file. - llvm::error_code ec; - llvm::OwningPtr<llvm::MemoryBuffer> File( - llvm::MemoryBuffer::getFile(file, ec)); + llvm::OwningPtr<llvm::MemoryBuffer> File; - if (!File) { + if (llvm::MemoryBuffer::getFile(file, File)) { // FIXME: Add ec.message() to this diag. Diags.Report(diag::err_invalid_pth_file) << file; return 0; diff --git a/lib/Serialization/ASTReader.cpp b/lib/Serialization/ASTReader.cpp index bbabf80486..a4ba496774 100644 --- a/lib/Serialization/ASTReader.cpp +++ b/lib/Serialization/ASTReader.cpp @@ -2278,7 +2278,7 @@ ASTReader::ASTReadResult ASTReader::ReadASTCore(llvm::StringRef FileName, std::string ErrStr; llvm::error_code ec; if (FileName == "-") { - F.Buffer.reset(llvm::MemoryBuffer::getSTDIN(ec)); + ec = llvm::MemoryBuffer::getSTDIN(F.Buffer); if (ec) ErrStr = ec.message(); } else |