mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-30 05:24:22 +00:00
Adjust llvm-ar and llvm-ranlib to not depend on exception handling.
Always use an exit code of 1, but print the help message if useful. Remove the exception handling tag in llvm-as, llvm-dis and llvm-bcanalyzer, where it isn't used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166767 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -61,41 +61,38 @@ int main(int argc, char **argv) {
|
||||
|
||||
int exitCode = 0;
|
||||
|
||||
// Make sure we don't exit with "unhandled exception".
|
||||
try {
|
||||
|
||||
// Check the path name of the archive
|
||||
sys::Path ArchivePath;
|
||||
if (!ArchivePath.set(ArchiveName))
|
||||
throw std::string("Archive name invalid: ") + ArchiveName;
|
||||
|
||||
// Make sure it exists, we don't create empty archives
|
||||
bool Exists;
|
||||
if (llvm::sys::fs::exists(ArchivePath.str(), Exists) || !Exists)
|
||||
throw std::string("Archive file does not exist");
|
||||
|
||||
std::string err_msg;
|
||||
std::auto_ptr<Archive>
|
||||
AutoArchive(Archive::OpenAndLoad(ArchivePath, Context, &err_msg));
|
||||
Archive* TheArchive = AutoArchive.get();
|
||||
if (!TheArchive)
|
||||
throw err_msg;
|
||||
|
||||
if (TheArchive->writeToDisk(true, false, &err_msg ))
|
||||
throw err_msg;
|
||||
|
||||
if (Verbose)
|
||||
printSymbolTable(TheArchive);
|
||||
|
||||
} catch (const char* msg) {
|
||||
errs() << argv[0] << ": " << msg << "\n\n";
|
||||
exitCode = 1;
|
||||
} catch (const std::string& msg) {
|
||||
errs() << argv[0] << ": " << msg << "\n";
|
||||
exitCode = 2;
|
||||
} catch (...) {
|
||||
errs() << argv[0] << ": An unexpected unknown exception occurred.\n";
|
||||
exitCode = 3;
|
||||
// Check the path name of the archive
|
||||
sys::Path ArchivePath;
|
||||
if (!ArchivePath.set(ArchiveName)) {
|
||||
errs() << argv[0] << ": " << "Archive name invalid: " << ArchiveName <<
|
||||
"\n";
|
||||
return 1;
|
||||
}
|
||||
|
||||
// Make sure it exists, we don't create empty archives
|
||||
bool Exists;
|
||||
if (llvm::sys::fs::exists(ArchivePath.str(), Exists) || !Exists) {
|
||||
errs() << argv[0] << ": " << "Archive file does not exist" <<
|
||||
ArchivePath.str() << "\n";
|
||||
return 1;
|
||||
}
|
||||
|
||||
std::string err_msg;
|
||||
std::auto_ptr<Archive>
|
||||
AutoArchive(Archive::OpenAndLoad(ArchivePath, Context, &err_msg));
|
||||
Archive* TheArchive = AutoArchive.get();
|
||||
if (!TheArchive) {
|
||||
errs() << argv[0] << ": " << err_msg << "\n";
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (TheArchive->writeToDisk(true, false, &err_msg )) {
|
||||
errs() << argv[0] << ": " << err_msg << "\n";
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (Verbose)
|
||||
printSymbolTable(TheArchive);
|
||||
|
||||
return exitCode;
|
||||
}
|
||||
|
Reference in New Issue
Block a user