[llvm-opt-report] Improve error handling
authorFrancis Visoiu Mistrih <francisvm@yahoo.com>
Fri, 13 Sep 2019 20:52:04 +0000 (20:52 +0000)
committerFrancis Visoiu Mistrih <francisvm@yahoo.com>
Fri, 13 Sep 2019 20:52:04 +0000 (20:52 +0000)
* std::move the error extracted from the parsing creation to avoid asserts
* print a newline after the error message
* create the parser from the metadata

llvm-svn: 371895

llvm/tools/llvm-opt-report/OptReport.cpp

index a0bc5dc..4aecec2 100644 (file)
@@ -158,16 +158,17 @@ static bool readLocationInfo(LocationInfoTy &LocationInfo) {
   if (!Format) {
     handleAllErrors(Format.takeError(), [&](const ErrorInfoBase &PE) {
       PE.log(WithColor::error());
-      WithColor::error() << '\n';
+      errs() << '\n';
     });
     return false;
   }
 
   Expected<std::unique_ptr<remarks::RemarkParser>> MaybeParser =
-      remarks::createRemarkParser(*Format, (*Buf)->getBuffer());
+      remarks::createRemarkParserFromMeta(*Format, (*Buf)->getBuffer());
   if (!MaybeParser) {
     handleAllErrors(MaybeParser.takeError(), [&](const ErrorInfoBase &PE) {
       PE.log(WithColor::error());
+      errs() << '\n';
     });
     return false;
   }
@@ -182,8 +183,9 @@ static bool readLocationInfo(LocationInfoTy &LocationInfo) {
         consumeError(std::move(E));
         break;
       }
-      handleAllErrors(MaybeRemark.takeError(), [&](const ErrorInfoBase &PE) {
+      handleAllErrors(std::move(E), [&](const ErrorInfoBase &PE) {
         PE.log(WithColor::error());
+        errs() << '\n';
       });
       return false;
     }