summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAmy Huang <akhuang@google.com>2019-04-24 00:28:23 +0000
committerAmy Huang <akhuang@google.com>2019-04-24 00:28:23 +0000
commit06d2fa7b47b36369797cfd2bf128f80ce2fef3f9 (patch)
tree12ffd3bd8824be238e7b061023953519877eb29d
parent465415f1db2b58034ae8a8ae34224874aae50238 (diff)
downloadbcm5719-llvm-06d2fa7b47b36369797cfd2bf128f80ce2fef3f9.tar.gz
bcm5719-llvm-06d2fa7b47b36369797cfd2bf128f80ce2fef3f9.zip
Fixes in creduce-clang-crash.py for clang crash message parsing and reading the command from the repro script.
llvm-svn: 359054
-rw-r--r--clang/utils/creduce-clang-crash.py13
1 files changed, 9 insertions, 4 deletions
diff --git a/clang/utils/creduce-clang-crash.py b/clang/utils/creduce-clang-crash.py
index 790a47ec38a..40d3c77b466 100644
--- a/clang/utils/creduce-clang-crash.py
+++ b/clang/utils/creduce-clang-crash.py
@@ -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 '(.+)'",
OpenPOWER on IntegriCloud