diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2014-07-04 13:52:01 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2014-07-04 13:52:01 +0000 |
commit | d346cc8efc614c5598476a9388b3f120b98d92c0 (patch) | |
tree | 5bfc323a6a205c21d0e34496945320fc0bf3b379 /llvm/lib/Bitcode/Reader/BitcodeReader.cpp | |
parent | ce8a0d6cd8949a181e14cb1933e1adac0096713c (diff) | |
download | bcm5719-llvm-d346cc8efc614c5598476a9388b3f120b98d92c0.tar.gz bcm5719-llvm-d346cc8efc614c5598476a9388b3f120b98d92c0.zip |
Convert these functions to use ErrorOr.
llvm-svn: 212341
Diffstat (limited to 'llvm/lib/Bitcode/Reader/BitcodeReader.cpp')
-rw-r--r-- | llvm/lib/Bitcode/Reader/BitcodeReader.cpp | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/llvm/lib/Bitcode/Reader/BitcodeReader.cpp b/llvm/lib/Bitcode/Reader/BitcodeReader.cpp index 641f6889133..c02b587e3fc 100644 --- a/llvm/lib/Bitcode/Reader/BitcodeReader.cpp +++ b/llvm/lib/Bitcode/Reader/BitcodeReader.cpp @@ -2116,12 +2116,13 @@ std::error_code BitcodeReader::ParseBitcodeInto(Module *M) { } } -std::error_code BitcodeReader::ParseModuleTriple(std::string &Triple) { +ErrorOr<std::string> BitcodeReader::parseModuleTriple() { if (Stream.EnterSubBlock(bitc::MODULE_BLOCK_ID)) return Error(InvalidRecord); SmallVector<uint64_t, 64> Record; + std::string Triple; // Read all the records for this module. while (1) { BitstreamEntry Entry = Stream.advanceSkippingSubblocks(); @@ -2150,9 +2151,10 @@ std::error_code BitcodeReader::ParseModuleTriple(std::string &Triple) { } Record.clear(); } + return Triple; } -std::error_code BitcodeReader::ParseTriple(std::string &Triple) { +ErrorOr<std::string> BitcodeReader::parseTriple() { if (std::error_code EC = InitStream()) return EC; @@ -2178,7 +2180,7 @@ std::error_code BitcodeReader::ParseTriple(std::string &Triple) { case BitstreamEntry::SubBlock: if (Entry.ID == bitc::MODULE_BLOCK_ID) - return ParseModuleTriple(Triple); + return parseModuleTriple(); // Ignore other sub-blocks. if (Stream.SkipBlock()) @@ -3470,11 +3472,10 @@ ErrorOr<Module *> llvm::parseBitcodeFile(MemoryBuffer *Buffer, std::string llvm::getBitcodeTargetTriple(MemoryBuffer *Buffer, LLVMContext &Context) { BitcodeReader *R = new BitcodeReader(Buffer, Context); - - std::string Triple(""); - R->ParseTriple(Triple); - + ErrorOr<std::string> Triple = R->parseTriple(); R->releaseBuffer(); delete R; - return Triple; + if (Triple.getError()) + return ""; + return Triple.get(); } |