mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-08-05 13:26:55 +00:00
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
This commit is contained in:
@@ -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<std::string>& 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<std::string>& symbols,
|
||||
} else {
|
||||
if (error)
|
||||
*error = "Can't parse bytecode member: " +
|
||||
mbr->getPath().toString();
|
||||
mbr->getPath().toString() + ": " + *error;
|
||||
delete mbr;
|
||||
return false;
|
||||
}
|
||||
|
@@ -223,7 +223,7 @@ Archive::writeMember(
|
||||
member.getPath().toString()
|
||||
+ ")";
|
||||
ModuleProvider* MP = GetBytecodeSymbols(
|
||||
(const unsigned char*)data,fSize,FullMemberName, symbols);
|
||||
(const unsigned char*)data,fSize,FullMemberName, symbols, ErrMsg);
|
||||
|
||||
// If the bytecode parsed successfully
|
||||
if ( MP ) {
|
||||
@@ -247,7 +247,8 @@ Archive::writeMember(
|
||||
delete mFile;
|
||||
}
|
||||
if (ErrMsg)
|
||||
*ErrMsg = "Can't parse bytecode member: " + member.getPath().toString();
|
||||
*ErrMsg = "Can't parse bytecode member: " + member.getPath().toString()
|
||||
+ ": " + *ErrMsg;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user