]> granicus.if.org Git - clang/commitdiff
Fixes in creduce-clang-crash.py for clang crash message parsing and reading the comma...
authorAmy Huang <akhuang@google.com>
Wed, 24 Apr 2019 00:28:23 +0000 (00:28 +0000)
committerAmy Huang <akhuang@google.com>
Wed, 24 Apr 2019 00:28:23 +0000 (00:28 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@359054 91177308-0d34-0410-b5e6-96231b3b80d8

utils/creduce-clang-crash.py

index 790a47ec38a96f474251d1f3d866ec48c9994cf1..40d3c77b4664ee3c26d010ac815f28b5415980eb 100644 (file)
@@ -93,9 +93,14 @@ class Reduce(object):
   def read_clang_args(self, crash_script, filename):
     print("\nReading arguments from crash script...")
     with open(crash_script) as f:
-      # Assume clang call is on the last line of the script
-      line = f.readlines()[-1]
-      cmd = shlex.split(line)
+      # Assume clang call is the first non comment line.
+      cmd = []
+      for line in f:
+        if not line.lstrip().startswith('#'):
+          cmd = shlex.split(line)
+          break
+    if not cmd:
+      sys.exit("Could not find command in the crash script.");
 
     # Remove clang and filename from the command
     # Assume the last occurrence of the filename is the clang input file
@@ -122,7 +127,7 @@ class Reduce(object):
     # Look for specific error messages
     regexes = [r"Assertion `(.+)' failed", # Linux assert()
                r"Assertion failed: (.+),", # FreeBSD/Mac assert()
-               r"fatal error: backend error: (.+)",
+               r"fatal error: error in backend: (.+)",
                r"LLVM ERROR: (.+)",
                r"UNREACHABLE executed (at .+)?!",
                r"LLVM IR generation of ceclaration '(.+)'",