diff --git a/bolt/lib/Profile/DataAggregator.cpp b/bolt/lib/Profile/DataAggregator.cpp index 3604fdd3a94b4..07f21187b5edd 100644 --- a/bolt/lib/Profile/DataAggregator.cpp +++ b/bolt/lib/Profile/DataAggregator.cpp @@ -432,7 +432,18 @@ int DataAggregator::prepareToParse(StringRef Name, PerfProcessInfo &Process, if (PI.ReturnCode != 0) { ErrorOr> ErrorMB = MemoryBuffer::getFileOrSTDIN(Process.StderrPath.data()); - StringRef ErrBuf = (*ErrorMB)->getBuffer(); + std::string ErrMsg; + StringRef ErrBuf; + if (std::error_code EC = ErrorMB.getError()) { + ErrMsg = "PERF2BOLT: cannot open "; + ErrMsg += Process.StderrPath.data(); + ErrMsg += ": "; + ErrMsg += EC.message(); + ErrMsg += '\n'; + ErrBuf = ErrMsg; + } else { + ErrBuf = (*ErrorMB)->getBuffer(); + } deleteTempFiles(); Callback(PI.ReturnCode, ErrBuf);