[llvm] r372372 - [llvm-readobj] flush output before crash

Yuanfang Chen via llvm-commits llvm-commits at lists.llvm.org
Thu Sep 19 23:33:04 PDT 2019


Author: yuanfang
Date: Thu Sep 19 23:33:03 2019
New Revision: 372372

URL: http://llvm.org/viewvc/llvm-project?rev=372372&view=rev
Log:
[llvm-readobj] flush output before crash

Otherwise the output could be lost.

Modified:
    llvm/trunk/tools/llvm-readobj/ARMWinEHPrinter.cpp

Modified: llvm/trunk/tools/llvm-readobj/ARMWinEHPrinter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-readobj/ARMWinEHPrinter.cpp?rev=372372&r1=372371&r2=372372&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-readobj/ARMWinEHPrinter.cpp (original)
+++ llvm/trunk/tools/llvm-readobj/ARMWinEHPrinter.cpp Thu Sep 19 23:33:03 2019
@@ -842,8 +842,10 @@ bool Decoder::dumpXDataRecord(const COFF
 
   if ((int64_t)(Contents.size() - Offset - 4 * HeaderWords(XData) -
                 (XData.E() ? 0 : XData.EpilogueCount() * 4) -
-                (XData.X() ? 8 : 0)) < (int64_t)ByteCodeLength)
+                (XData.X() ? 8 : 0)) < (int64_t)ByteCodeLength) {
+    SW.flush();
     report_fatal_error("Malformed unwind data");
+  }
 
   if (XData.E()) {
     ArrayRef<uint8_t> UC = XData.UnwindByteCode();




More information about the llvm-commits mailing list