mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-14 14:24:05 +00:00
Implement an isBytecodeArchive method to determine if an archive contains
bytecode file members or not. Patch Contributed By Adam Treat git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20338 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -503,3 +503,32 @@ Archive::findModulesDefiningSymbols(std::set<std::string>& symbols,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool
|
||||
Archive::isBytecodeArchive()
|
||||
{
|
||||
//Make sure the symTab has been loaded...
|
||||
//in most cases this should have been done
|
||||
//when the archive was constructed, but still,
|
||||
//this is just in case.
|
||||
if ( !symTab.size() )
|
||||
loadSymbolTable();
|
||||
|
||||
//Now that we know it's been loaded, return true
|
||||
//if it has a size
|
||||
if ( symTab.size() ) return true;
|
||||
|
||||
//We still can't be sure it isn't a bytecode archive
|
||||
loadArchive();
|
||||
|
||||
std::vector<Module *> Modules;
|
||||
std::string ErrorMessage;
|
||||
|
||||
//If getAllModules gives an error then this isn't a proper
|
||||
//bytecode archive
|
||||
if ( getAllModules( Modules, &ErrorMessage ) ) return false;
|
||||
|
||||
//Finally, if we find any bytecode modules then this is a proper
|
||||
//bytecode archive
|
||||
return Modules.size();
|
||||
}
|
||||
|
Reference in New Issue
Block a user