[Mesa-dev] [PATCH] radeon/llvm: Fix LLVM diagnostic error reporting

Tom Stellard thomas.stellard at amd.com
Mon Jul 14 13:51:27 PDT 2014


We were trying to print the error message after disposing the
message object.
---
 src/gallium/drivers/radeon/radeon_llvm_emit.c | 11 ++++-------
 1 file changed, 4 insertions(+), 7 deletions(-)

diff --git a/src/gallium/drivers/radeon/radeon_llvm_emit.c b/src/gallium/drivers/radeon/radeon_llvm_emit.c
index 6a394b2..1b17dd4 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);
 	}
 }
 
-- 
1.8.1.5



More information about the mesa-dev mailing list