Convert these functions to use ErrorOr.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@212341 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Rafael Espindola 2014-07-04 13:52:01 +00:00
parent 82a599a0a4
commit 2d1f275c99
2 changed files with 11 additions and 10 deletions

View File

@ -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();
}

View File

@ -252,7 +252,7 @@ public:
/// @brief Cheap mechanism to just extract module triple
/// @returns true if an error occurred.
std::error_code ParseTriple(std::string &Triple);
ErrorOr<std::string> parseTriple();
static uint64_t decodeSignRotatedValue(uint64_t V);
@ -354,7 +354,7 @@ private:
std::error_code ResolveGlobalAndAliasInits();
std::error_code ParseMetadata();
std::error_code ParseMetadataAttachment();
std::error_code ParseModuleTriple(std::string &Triple);
ErrorOr<std::string> parseModuleTriple();
std::error_code ParseUseLists();
std::error_code InitStream();
std::error_code InitStreamFromBuffer();