Mesa (master): gallivm: fix output stream flushing in error case for disassembly.

Roland Scheidegger sroland at kemper.freedesktop.org
Wed May 14 14:25:44 UTC 2014


Module: Mesa
Branch: master
Commit: 18c6454ad19d5d323af7b3318f18c409b84c7a12
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=18c6454ad19d5d323af7b3318f18c409b84c7a12

Author: Roland Scheidegger <sroland at vmware.com>
Date:   Wed May 14 03:23:09 2014 +0200

gallivm: fix output stream flushing in error case for disassembly.

When there's an error, also need to flush the stream, otherwise an assertion
is hit (meaning you don't actually see the error neither).

---

 src/gallium/auxiliary/gallivm/lp_bld_debug.cpp |    5 +++++
 1 file changed, 5 insertions(+)

diff --git a/src/gallium/auxiliary/gallivm/lp_bld_debug.cpp b/src/gallium/auxiliary/gallivm/lp_bld_debug.cpp
index 85953a2..5d6d45d 100644
--- a/src/gallium/auxiliary/gallivm/lp_bld_debug.cpp
+++ b/src/gallium/auxiliary/gallivm/lp_bld_debug.cpp
@@ -201,6 +201,7 @@ disassemble(const void* func, llvm::raw_ostream & Out)
 
    if (!AsmInfo) {
       Out << "error: no assembly info for target " << Triple << "\n";
+      Out.flush();
       return 0;
    }
 
@@ -209,12 +210,14 @@ disassemble(const void* func, llvm::raw_ostream & Out)
    OwningPtr<const MCRegisterInfo> MRI(T->createMCRegInfo(Triple));
    if (!MRI) {
       Out << "error: no register info for target " << Triple.c_str() << "\n";
+      Out.flush();
       return 0;
    }
 
    OwningPtr<const MCInstrInfo> MII(T->createMCInstrInfo());
    if (!MII) {
       Out << "error: no instruction info for target " << Triple.c_str() << "\n";
+      Out.flush();
       return 0;
    }
 
@@ -228,6 +231,7 @@ disassemble(const void* func, llvm::raw_ostream & Out)
 #endif
    if (!DisAsm) {
       Out << "error: no disassembler for target " << Triple << "\n";
+      Out.flush();
       return 0;
    }
 
@@ -236,6 +240,7 @@ disassemble(const void* func, llvm::raw_ostream & Out)
          T->createMCInstPrinter(AsmPrinterVariant, *AsmInfo, *MII, *MRI, *STI));
    if (!Printer) {
       Out << "error: no instruction printer for target " << Triple.c_str() << "\n";
+      Out.flush();
       return 0;
    }
 




More information about the mesa-commit mailing list