From: Tom Stellard Date: Thu, 10 Jul 2014 17:06:52 +0000 (-0400) Subject: radeon/llvm: Fix LLVM diagnostic error reporting X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=0d711e719e7c5b5a4a34521af97d84f3fb628efd;p=mesa.git radeon/llvm: Fix LLVM diagnostic error reporting We were trying to print the error message after disposing the message object. Tested-by and Reviewed-by: Aaron Watry --- diff --git a/src/gallium/drivers/radeon/radeon_llvm_emit.c b/src/gallium/drivers/radeon/radeon_llvm_emit.c index 6a394b265e4..1b17dd4613f 100644 --- a/src/gallium/drivers/radeon/radeon_llvm_emit.c +++ b/src/gallium/drivers/radeon/radeon_llvm_emit.c @@ -83,16 +83,13 @@ static LLVMTargetRef get_r600_target() { #if HAVE_LLVM >= 0x0305 static void radeonDiagnosticHandler(LLVMDiagnosticInfoRef di, void *context) { - unsigned int *diagnosticflag; - char *diaginfo_message; - - diaginfo_message = LLVMGetDiagInfoDescription(di); - LLVMDisposeMessage(diaginfo_message); - - diagnosticflag = (unsigned int *)context; if (LLVMGetDiagInfoSeverity(di) == LLVMDSError) { + unsigned int *diagnosticflag = (unsigned int *)context; + char *diaginfo_message = LLVMGetDiagInfoDescription(di); + *diagnosticflag = 1; fprintf(stderr,"LLVM triggered Diagnostic Handler: %s\n", diaginfo_message); + LLVMDisposeMessage(diaginfo_message); } }