[llvm-xray] consumeError when trying big-endian
authorFangrui Song <maskray@google.com>
Sun, 17 May 2020 05:42:52 +0000 (22:42 -0700)
committerFangrui Song <maskray@google.com>
Sun, 17 May 2020 05:44:48 +0000 (22:44 -0700)
Follow-up of rL341226.

Fixes "Expected<T> must be checked before access or destruction"

llvm/lib/XRay/Trace.cpp

index 4f107e1..5ceb269 100644 (file)
@@ -410,6 +410,7 @@ Expected<Trace> llvm::xray::loadTraceFile(StringRef Filename, bool Sort) {
   auto TraceOrError = loadTrace(LittleEndianDE, Sort);
   if (!TraceOrError) {
     DataExtractor BigEndianDE(Data, false, 8);
+    consumeError(TraceOrError.takeError());
     TraceOrError = loadTrace(BigEndianDE, Sort);
   }
   return TraceOrError;