From 18c6454ad19d5d323af7b3318f18c409b84c7a12 Mon Sep 17 00:00:00 2001 From: Roland Scheidegger Date: Wed, 14 May 2014 03:23:09 +0200 Subject: [PATCH] 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 85953a225b9..5d6d45d61ec 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 MRI(T->createMCRegInfo(Triple)); if (!MRI) { Out << "error: no register info for target " << Triple.c_str() << "\n"; + Out.flush(); return 0; } OwningPtr 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; } -- 2.30.2