mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-09-19 04:26:05 +00:00
For PR351:
* Place a try/catch block around the entire tool to Make sure std::string exceptions are caught and printed before exiting the tool. * Make sure we catch unhandled exceptions at the top level so that we don't abort with a useless message but indicate than an unhandled exception was generated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19192 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -116,6 +116,7 @@ namespace {
|
|||||||
}
|
}
|
||||||
|
|
||||||
int main(int argc, char **argv) {
|
int main(int argc, char **argv) {
|
||||||
|
try {
|
||||||
cl::ParseCommandLineOptions(argc, argv, " llvm analysis printer tool\n");
|
cl::ParseCommandLineOptions(argc, argv, " llvm analysis printer tool\n");
|
||||||
sys::PrintStackTraceOnErrorSignal();
|
sys::PrintStackTraceOnErrorSignal();
|
||||||
|
|
||||||
@@ -170,4 +171,11 @@ int main(int argc, char **argv) {
|
|||||||
|
|
||||||
delete CurMod;
|
delete CurMod;
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
} catch (const std::string& msg) {
|
||||||
|
std::cerr << argv[0] << ": " << msg << "\n";
|
||||||
|
} catch (...) {
|
||||||
|
std::cerr << argv[0] << ": Unexpected unknown exception occurred.\n";
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
|
@@ -51,10 +51,11 @@ int main(int argc, char **argv) {
|
|||||||
return D.run();
|
return D.run();
|
||||||
} catch (ToolExecutionError &TEE) {
|
} catch (ToolExecutionError &TEE) {
|
||||||
std::cerr << "Tool execution error: " << TEE.what() << '\n';
|
std::cerr << "Tool execution error: " << TEE.what() << '\n';
|
||||||
return 1;
|
} catch (const std::string& msg) {
|
||||||
|
std::cerr << argv[0] << ": " << msg << "\n";
|
||||||
} catch (...) {
|
} catch (...) {
|
||||||
std::cerr << "Whoops, an exception leaked out of bugpoint. "
|
std::cerr << "Whoops, an exception leaked out of bugpoint. "
|
||||||
<< "This is a bug in bugpoint!\n";
|
<< "This is a bug in bugpoint!\n";
|
||||||
|
}
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@@ -45,6 +45,7 @@ ExtractFunc("func", cl::desc("Specify function to extract"), cl::init("main"),
|
|||||||
cl::value_desc("function"));
|
cl::value_desc("function"));
|
||||||
|
|
||||||
int main(int argc, char **argv) {
|
int main(int argc, char **argv) {
|
||||||
|
try {
|
||||||
cl::ParseCommandLineOptions(argc, argv, " llvm extractor\n");
|
cl::ParseCommandLineOptions(argc, argv, " llvm extractor\n");
|
||||||
sys::PrintStackTraceOnErrorSignal();
|
sys::PrintStackTraceOnErrorSignal();
|
||||||
|
|
||||||
@@ -94,4 +95,10 @@ int main(int argc, char **argv) {
|
|||||||
if (Out != &std::cout)
|
if (Out != &std::cout)
|
||||||
delete Out;
|
delete Out;
|
||||||
return 0;
|
return 0;
|
||||||
|
} catch (const std::string& msg) {
|
||||||
|
std::cerr << argv[0] << ": " << msg << "\n";
|
||||||
|
} catch (...) {
|
||||||
|
std::cerr << argv[0] << ": Unexpected unknown exception occurred.\n";
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
|
@@ -128,7 +128,9 @@ void AddConfiguredTransformationPasses(PassManager &PM) {
|
|||||||
|
|
||||||
|
|
||||||
int main(int argc, char **argv) {
|
int main(int argc, char **argv) {
|
||||||
cl::ParseCommandLineOptions(argc, argv, " llvm .s -> .o assembler for GCC\n");
|
try {
|
||||||
|
cl::ParseCommandLineOptions(argc, argv,
|
||||||
|
" llvm .s -> .o assembler for GCC\n");
|
||||||
sys::PrintStackTraceOnErrorSignal();
|
sys::PrintStackTraceOnErrorSignal();
|
||||||
|
|
||||||
std::auto_ptr<Module> M;
|
std::auto_ptr<Module> M;
|
||||||
@@ -201,4 +203,10 @@ int main(int argc, char **argv) {
|
|||||||
|
|
||||||
if (Out != &std::cout) delete Out;
|
if (Out != &std::cout) delete Out;
|
||||||
return 0;
|
return 0;
|
||||||
|
} catch (const std::string& msg) {
|
||||||
|
std::cerr << argv[0] << ": " << msg << "\n";
|
||||||
|
} catch (...) {
|
||||||
|
std::cerr << argv[0] << ": Unexpected unknown exception occurred.\n";
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
|
@@ -63,6 +63,7 @@ GetFileNameRoot(const std::string &InputFilename) {
|
|||||||
// main - Entry point for the llc compiler.
|
// main - Entry point for the llc compiler.
|
||||||
//
|
//
|
||||||
int main(int argc, char **argv) {
|
int main(int argc, char **argv) {
|
||||||
|
try {
|
||||||
cl::ParseCommandLineOptions(argc, argv, " llvm system compiler\n");
|
cl::ParseCommandLineOptions(argc, argv, " llvm system compiler\n");
|
||||||
sys::PrintStackTraceOnErrorSignal();
|
sys::PrintStackTraceOnErrorSignal();
|
||||||
|
|
||||||
@@ -169,4 +170,10 @@ int main(int argc, char **argv) {
|
|||||||
if (Out != &std::cout) delete Out;
|
if (Out != &std::cout) delete Out;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
} catch (const std::string& msg) {
|
||||||
|
std::cerr << argv[0] << ": " << msg << "\n";
|
||||||
|
} catch (...) {
|
||||||
|
std::cerr << argv[0] << ": Unexpected unknown exception occurred.\n";
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
|
@@ -47,6 +47,7 @@ namespace {
|
|||||||
// main Driver function
|
// main Driver function
|
||||||
//
|
//
|
||||||
int main(int argc, char **argv, char * const *envp) {
|
int main(int argc, char **argv, char * const *envp) {
|
||||||
|
try {
|
||||||
cl::ParseCommandLineOptions(argc, argv,
|
cl::ParseCommandLineOptions(argc, argv,
|
||||||
" llvm interpreter & dynamic compiler\n");
|
" llvm interpreter & dynamic compiler\n");
|
||||||
sys::PrintStackTraceOnErrorSignal();
|
sys::PrintStackTraceOnErrorSignal();
|
||||||
@@ -105,4 +106,10 @@ int main(int argc, char **argv, char * const *envp) {
|
|||||||
|
|
||||||
std::cerr << "ERROR: exit(" << Result << ") returned!\n";
|
std::cerr << "ERROR: exit(" << Result << ") returned!\n";
|
||||||
abort();
|
abort();
|
||||||
|
} catch (const std::string& msg) {
|
||||||
|
std::cerr << argv[0] << ": " << msg << "\n";
|
||||||
|
} catch (...) {
|
||||||
|
std::cerr << argv[0] << ": Unexpected unknown exception occurred.\n";
|
||||||
|
}
|
||||||
|
abort();
|
||||||
}
|
}
|
||||||
|
@@ -52,6 +52,7 @@ int main(int argc, char **argv) {
|
|||||||
cl::ParseCommandLineOptions(argc, argv, " llvm .ll -> .bc assembler\n");
|
cl::ParseCommandLineOptions(argc, argv, " llvm .ll -> .bc assembler\n");
|
||||||
sys::PrintStackTraceOnErrorSignal();
|
sys::PrintStackTraceOnErrorSignal();
|
||||||
|
|
||||||
|
int exitCode = 0;
|
||||||
std::ostream *Out = 0;
|
std::ostream *Out = 0;
|
||||||
try {
|
try {
|
||||||
// Parse the file now...
|
// Parse the file now...
|
||||||
@@ -126,10 +127,16 @@ int main(int argc, char **argv) {
|
|||||||
WriteBytecodeToFile(M.get(), *Out, !NoCompress);
|
WriteBytecodeToFile(M.get(), *Out, !NoCompress);
|
||||||
} catch (const ParseException &E) {
|
} catch (const ParseException &E) {
|
||||||
std::cerr << argv[0] << ": " << E.getMessage() << "\n";
|
std::cerr << argv[0] << ": " << E.getMessage() << "\n";
|
||||||
return 1;
|
exitCode = 1;
|
||||||
|
} catch (const std::string& msg) {
|
||||||
|
std::cerr << argv[0] << ": " << msg << "\n";
|
||||||
|
exitCode = 1;
|
||||||
|
} catch (...) {
|
||||||
|
std::cerr << argv[0] << ": Unexpected unknown exception occurred.\n";
|
||||||
|
exitCode = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Out != &std::cout) delete Out;
|
if (Out != &std::cout) delete Out;
|
||||||
return 0;
|
return exitCode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -49,8 +49,8 @@ static cl::opt<bool> Dump ("dump", cl::desc("Dump low level bytecode trace"
|
|||||||
static cl::opt<bool> Verify ("verify", cl::desc("Progressively verify module"));
|
static cl::opt<bool> Verify ("verify", cl::desc("Progressively verify module"));
|
||||||
|
|
||||||
int
|
int
|
||||||
main(int argc, char **argv)
|
main(int argc, char **argv) {
|
||||||
{
|
try {
|
||||||
cl::ParseCommandLineOptions(argc, argv,
|
cl::ParseCommandLineOptions(argc, argv,
|
||||||
" llvm-bcanalyzer Analysis of ByteCode Dumper\n");
|
" llvm-bcanalyzer Analysis of ByteCode Dumper\n");
|
||||||
|
|
||||||
@@ -95,6 +95,12 @@ main(int argc, char **argv)
|
|||||||
delete Out;
|
delete Out;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
} catch (const std::string& msg) {
|
||||||
|
std::cerr << argv[0] << ": " << msg << "\n";
|
||||||
|
} catch (...) {
|
||||||
|
std::cerr << argv[0] << ": Unexpected unknown exception occurred.\n";
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// vim: sw=2
|
// vim: sw=2
|
||||||
|
@@ -50,6 +50,7 @@ namespace {
|
|||||||
// main Driver function
|
// main Driver function
|
||||||
//
|
//
|
||||||
int main(int argc, char **argv, char * const *envp) {
|
int main(int argc, char **argv, char * const *envp) {
|
||||||
|
try {
|
||||||
cl::ParseCommandLineOptions(argc, argv,
|
cl::ParseCommandLineOptions(argc, argv,
|
||||||
" llvm source-level debugger\n");
|
" llvm source-level debugger\n");
|
||||||
sys::PrintStackTraceOnErrorSignal();
|
sys::PrintStackTraceOnErrorSignal();
|
||||||
@@ -85,4 +86,10 @@ int main(int argc, char **argv, char * const *envp) {
|
|||||||
|
|
||||||
// Now that we have initialized the debugger, run it.
|
// Now that we have initialized the debugger, run it.
|
||||||
return D.run();
|
return D.run();
|
||||||
|
} catch (const std::string& msg) {
|
||||||
|
std::cerr << argv[0] << ": " << msg << "\n";
|
||||||
|
} catch (...) {
|
||||||
|
std::cerr << argv[0] << ": Unexpected unknown exception occurred.\n";
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
|
@@ -41,6 +41,7 @@ static cl::opt<bool>
|
|||||||
CWriteMode("c", cl::desc("Obsolete option, do not use"), cl::ReallyHidden);
|
CWriteMode("c", cl::desc("Obsolete option, do not use"), cl::ReallyHidden);
|
||||||
|
|
||||||
int main(int argc, char **argv) {
|
int main(int argc, char **argv) {
|
||||||
|
try {
|
||||||
cl::ParseCommandLineOptions(argc, argv, " llvm .bc -> .ll disassembler\n");
|
cl::ParseCommandLineOptions(argc, argv, " llvm .bc -> .ll disassembler\n");
|
||||||
sys::PrintStackTraceOnErrorSignal();
|
sys::PrintStackTraceOnErrorSignal();
|
||||||
|
|
||||||
@@ -117,5 +118,11 @@ int main(int argc, char **argv) {
|
|||||||
delete Out;
|
delete Out;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
} catch (const std::string& msg) {
|
||||||
|
std::cerr << argv[0] << ": " << msg << "\n";
|
||||||
|
} catch (...) {
|
||||||
|
std::cerr << argv[0] << ": Unexpected unknown exception occurred.\n";
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -45,6 +45,7 @@ ExtractFunc("func", cl::desc("Specify function to extract"), cl::init("main"),
|
|||||||
cl::value_desc("function"));
|
cl::value_desc("function"));
|
||||||
|
|
||||||
int main(int argc, char **argv) {
|
int main(int argc, char **argv) {
|
||||||
|
try {
|
||||||
cl::ParseCommandLineOptions(argc, argv, " llvm extractor\n");
|
cl::ParseCommandLineOptions(argc, argv, " llvm extractor\n");
|
||||||
sys::PrintStackTraceOnErrorSignal();
|
sys::PrintStackTraceOnErrorSignal();
|
||||||
|
|
||||||
@@ -94,4 +95,10 @@ int main(int argc, char **argv) {
|
|||||||
if (Out != &std::cout)
|
if (Out != &std::cout)
|
||||||
delete Out;
|
delete Out;
|
||||||
return 0;
|
return 0;
|
||||||
|
} catch (const std::string& msg) {
|
||||||
|
std::cerr << argv[0] << ": " << msg << "\n";
|
||||||
|
} catch (...) {
|
||||||
|
std::cerr << argv[0] << ": Unexpected unknown exception occurred.\n";
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
|
@@ -389,6 +389,7 @@ extern void Optimize(Module*);
|
|||||||
}
|
}
|
||||||
|
|
||||||
int main(int argc, char **argv, char **envp) {
|
int main(int argc, char **argv, char **envp) {
|
||||||
|
try {
|
||||||
// Initial global variable above for convenience printing of program name.
|
// Initial global variable above for convenience printing of program name.
|
||||||
progname = sys::Path(argv[0]).getBasename();
|
progname = sys::Path(argv[0]).getBasename();
|
||||||
Linker TheLinker(progname, Verbose);
|
Linker TheLinker(progname, Verbose);
|
||||||
@@ -511,4 +512,10 @@ int main(int argc, char **argv, char **envp) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
} catch (const std::string& msg) {
|
||||||
|
std::cerr << argv[0] << ": " << msg << "\n";
|
||||||
|
} catch (...) {
|
||||||
|
std::cerr << argv[0] << ": Unexpected unknown exception occurred.\n";
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
|
@@ -75,6 +75,7 @@ static inline std::auto_ptr<Module> LoadFile(const std::string &FN) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
int main(int argc, char **argv) {
|
int main(int argc, char **argv) {
|
||||||
|
try {
|
||||||
cl::ParseCommandLineOptions(argc, argv, " llvm linker\n");
|
cl::ParseCommandLineOptions(argc, argv, " llvm linker\n");
|
||||||
sys::PrintStackTraceOnErrorSignal();
|
sys::PrintStackTraceOnErrorSignal();
|
||||||
assert(InputFilenames.size() > 0 && "OneOrMore is not working");
|
assert(InputFilenames.size() > 0 && "OneOrMore is not working");
|
||||||
@@ -141,4 +142,10 @@ int main(int argc, char **argv) {
|
|||||||
|
|
||||||
if (Out != &std::cout) delete Out;
|
if (Out != &std::cout) delete Out;
|
||||||
return 0;
|
return 0;
|
||||||
|
} catch (const std::string& msg) {
|
||||||
|
std::cerr << argv[0] << ": " << msg << "\n";
|
||||||
|
} catch (...) {
|
||||||
|
std::cerr << argv[0] << ": Unexpected unknown exception occurred.\n";
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
|
@@ -152,6 +152,7 @@ void DumpSymbolNamesFromFile (std::string &Filename) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
int main(int argc, char **argv) {
|
int main(int argc, char **argv) {
|
||||||
|
try {
|
||||||
cl::ParseCommandLineOptions(argc, argv, " llvm symbol table dumper\n");
|
cl::ParseCommandLineOptions(argc, argv, " llvm symbol table dumper\n");
|
||||||
sys::PrintStackTraceOnErrorSignal();
|
sys::PrintStackTraceOnErrorSignal();
|
||||||
|
|
||||||
@@ -168,4 +169,10 @@ int main(int argc, char **argv) {
|
|||||||
std::for_each (InputFilenames.begin (), InputFilenames.end (),
|
std::for_each (InputFilenames.begin (), InputFilenames.end (),
|
||||||
DumpSymbolNamesFromFile);
|
DumpSymbolNamesFromFile);
|
||||||
return 0;
|
return 0;
|
||||||
|
} catch (const std::string& msg) {
|
||||||
|
std::cerr << argv[0] << ": " << msg << "\n";
|
||||||
|
} catch (...) {
|
||||||
|
std::cerr << argv[0] << ": Unexpected unknown exception occurred.\n";
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
|
@@ -107,6 +107,7 @@ namespace {
|
|||||||
|
|
||||||
|
|
||||||
int main(int argc, char **argv) {
|
int main(int argc, char **argv) {
|
||||||
|
try {
|
||||||
cl::ParseCommandLineOptions(argc, argv, " llvm profile dump decoder\n");
|
cl::ParseCommandLineOptions(argc, argv, " llvm profile dump decoder\n");
|
||||||
sys::PrintStackTraceOnErrorSignal();
|
sys::PrintStackTraceOnErrorSignal();
|
||||||
|
|
||||||
@@ -227,4 +228,10 @@ int main(int argc, char **argv) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
} catch (const std::string& msg) {
|
||||||
|
std::cerr << argv[0] << ": " << msg << "\n";
|
||||||
|
} catch (...) {
|
||||||
|
std::cerr << argv[0] << ": Unexpected unknown exception occurred.\n";
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
|
@@ -368,4 +368,5 @@ int main(int argc, char **argv) {
|
|||||||
} catch (...) {
|
} catch (...) {
|
||||||
std::cerr << argv[0] << ": Unexpected unknown exception occurred.\n";
|
std::cerr << argv[0] << ": Unexpected unknown exception occurred.\n";
|
||||||
}
|
}
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
|
@@ -70,6 +70,7 @@ QuietA("quiet", cl::desc("Alias for -q"), cl::aliasopt(Quiet));
|
|||||||
// main for opt
|
// main for opt
|
||||||
//
|
//
|
||||||
int main(int argc, char **argv) {
|
int main(int argc, char **argv) {
|
||||||
|
try {
|
||||||
cl::ParseCommandLineOptions(argc, argv,
|
cl::ParseCommandLineOptions(argc, argv,
|
||||||
" llvm .bc -> .bc modular optimizer\n");
|
" llvm .bc -> .bc modular optimizer\n");
|
||||||
sys::PrintStackTraceOnErrorSignal();
|
sys::PrintStackTraceOnErrorSignal();
|
||||||
@@ -168,4 +169,10 @@ int main(int argc, char **argv) {
|
|||||||
Passes.run(*M.get());
|
Passes.run(*M.get());
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
} catch (const std::string& msg) {
|
||||||
|
std::cerr << argv[0] << ": " << msg << "\n";
|
||||||
|
} catch (...) {
|
||||||
|
std::cerr << argv[0] << ": Unexpected unknown exception occurred.\n";
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user