llvm-profdata: Check for bad data in the show command
authorJustin Bogner <mail@justinbogner.com>
Sun, 23 Mar 2014 20:55:53 +0000 (20:55 +0000)
committerJustin Bogner <mail@justinbogner.com>
Sun, 23 Mar 2014 20:55:53 +0000 (20:55 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@204573 91177308-0d34-0410-b5e6-96231b3b80d8

test/tools/llvm-profdata/errors.test
tools/llvm-profdata/llvm-profdata.cpp

index 487da74b86bc3de9fc0966bf8fc70b5c613a80ec..6ccb08486984ee073d1c45561df4d3cd377c0673 100644 (file)
@@ -4,8 +4,10 @@ HASH: foo4-1.profdata: foo: Function hash mismatch
 RUN: llvm-profdata merge %p/Inputs/overflow.profdata %p/Inputs/overflow.profdata -o /dev/null 2>&1 | FileCheck %s --check-prefix=OVERFLOW
 OVERFLOW: overflow.profdata: overflow: Counter overflow
 
+RUN: not llvm-profdata show %p/Inputs/invalid-count-later.profdata 2>&1 | FileCheck %s --check-prefix=INVALID-COUNT-LATER
 RUN: not llvm-profdata merge %p/Inputs/invalid-count-later.profdata %p/Inputs/invalid-count-later.profdata 2>&1 | FileCheck %s --check-prefix=INVALID-COUNT-LATER
 INVALID-COUNT-LATER: error: {{.*}}invalid-count-later.profdata: Malformed profile data
 
+RUN: not llvm-profdata show %p/Inputs/bad-hash.profdata 2>&1 | FileCheck %s --check-prefix=BAD-HASH
 RUN: not llvm-profdata merge %p/Inputs/bad-hash.profdata %p/Inputs/bad-hash.profdata 2>&1 | FileCheck %s --check-prefix=BAD-HASH
 BAD-HASH: error: {{.*}}bad-hash.profdata: Malformed profile data
index 5a0e27fd6d32f6e4dffd16409758dea3ecf4857d..397b52396923b134de80e64b5f0a7469e3730ab8 100644 (file)
@@ -137,6 +137,8 @@ int show_main(int argc, const char *argv[]) {
     if (Show && ShowCounts)
       OS << "]\n";
   }
+  if (Reader->hasError())
+    exitWithError(Reader->getError().message(), Filename);
 
   if (ShowAllFunctions || !ShowFunction.empty())
     OS << "Functions shown: " << ShownFunctions << "\n";