Catch the parse exception if bad input is provided. Much better than an abort
authorChris Lattner <sabre@nondot.org>
Fri, 1 Feb 2002 05:09:35 +0000 (05:09 +0000)
committerChris Lattner <sabre@nondot.org>
Fri, 1 Feb 2002 05:09:35 +0000 (05:09 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1631 91177308-0d34-0410-b5e6-96231b3b80d8

tools/analyze/analyze.cpp

index 3bc2ee9e22e665116477e9d802873f2fe91aa8a3..112bfcc04b4285ea040ac6d44b8bd77eb8172fa8 100644 (file)
@@ -259,9 +259,14 @@ struct {
 int main(int argc, char **argv) {
   cl::ParseCommandLineOptions(argc, argv, " llvm analysis printer tool\n");
 
-  CurrentModule = ParseBytecodeFile(InputFilename);
-  if (!CurrentModule && !(CurrentModule = ParseAssemblyFile(InputFilename))) {
-    std::cerr << "Input file didn't read correctly.\n";
+  try {
+    CurrentModule = ParseBytecodeFile(InputFilename);
+    if (!CurrentModule && !(CurrentModule = ParseAssemblyFile(InputFilename))){
+      std::cerr << "Input file didn't read correctly.\n";
+      return 1;
+    }
+  } catch (const ParseException &E) {
+    cerr << E.getMessage() << endl;
     return 1;
   }