From 0b5a504d105514178c80b886321221fbe5ac1131 Mon Sep 17 00:00:00 2001 From: Reid Spencer Date: Fri, 25 Aug 2006 17:43:11 +0000 Subject: For PR797: Remove exception throwing/handling from lib/Bytecode, and adjust its users to compensate for changes in the interface. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29875 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Bytecode/Archive/ArchiveReader.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'lib/Bytecode/Archive/ArchiveReader.cpp') diff --git a/lib/Bytecode/Archive/ArchiveReader.cpp b/lib/Bytecode/Archive/ArchiveReader.cpp index 38aa07243c..e4769cac88 100644 --- a/lib/Bytecode/Archive/ArchiveReader.cpp +++ b/lib/Bytecode/Archive/ArchiveReader.cpp @@ -475,14 +475,16 @@ Archive::findModuleDefiningSymbol(const std::string& symbol, const char* modptr = base + fileOffset; ArchiveMember* mbr = parseMemberHeader(modptr, base + mapfile->size(),ErrMsg); if (!mbr) - return false; + return 0; // Now, load the bytecode module to get the ModuleProvider std::string FullMemberName = archPath.toString() + "(" + mbr->getPath().toString() + ")"; ModuleProvider* mp = getBytecodeBufferModuleProvider( (const unsigned char*) mbr->getData(), mbr->getSize(), - FullMemberName, 0); + FullMemberName, ErrMsg, 0); + if (!mp) + return 0; modules.insert(std::make_pair(fileOffset, std::make_pair(mp, mbr))); @@ -523,7 +525,7 @@ Archive::findModulesDefiningSymbols(std::set& symbols, std::string FullMemberName = archPath.toString() + "(" + mbr->getPath().toString() + ")"; ModuleProvider* MP = GetBytecodeSymbols((const unsigned char*)At, - mbr->getSize(), FullMemberName, symbols); + mbr->getSize(), FullMemberName, symbols, error); if (MP) { // Insert the module's symbols into the symbol table @@ -537,7 +539,7 @@ Archive::findModulesDefiningSymbols(std::set& symbols, } else { if (error) *error = "Can't parse bytecode member: " + - mbr->getPath().toString(); + mbr->getPath().toString() + ": " + *error; delete mbr; return false; } -- cgit v1.2.3-18-g5258