Mesa (master): gallivm: Fix segfaul when inserting allocas in an empty function.

Jose Fonseca jrfonseca at kemper.freedesktop.org
Sat May 8 12:18:28 UTC 2010


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

Author: José Fonseca <jfonseca at vmware.com>
Date:   Sat May  8 13:02:46 2010 +0100

gallivm: Fix segfaul when inserting allocas in an empty function.

---

 src/gallium/auxiliary/gallivm/lp_bld_flow.c |   13 ++++++++++---
 1 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/src/gallium/auxiliary/gallivm/lp_bld_flow.c b/src/gallium/auxiliary/gallivm/lp_bld_flow.c
index 8f15b1d..560ce1d 100644
--- a/src/gallium/auxiliary/gallivm/lp_bld_flow.c
+++ b/src/gallium/auxiliary/gallivm/lp_bld_flow.c
@@ -821,8 +821,11 @@ lp_build_alloca(LLVMBuilderRef builder,
    LLVMBuilderRef first_builder = LLVMCreateBuilder();
    LLVMValueRef res;
 
-   LLVMPositionBuilderAtEnd(first_builder, first_block);
-   LLVMPositionBuilderBefore(first_builder, first_instr);
+   if (first_instr) {
+      LLVMPositionBuilderBefore(first_builder, first_instr);
+   } else {
+      LLVMPositionBuilderAtEnd(first_builder, first_block);
+   }
 
    res = LLVMBuildAlloca(first_builder, type, name);
 
@@ -859,7 +862,11 @@ lp_build_array_alloca(LLVMBuilderRef builder,
    LLVMBuilderRef first_builder = LLVMCreateBuilder();
    LLVMValueRef res;
 
-   LLVMPositionBuilderBefore(first_builder, first_instr);
+   if (first_instr) {
+      LLVMPositionBuilderBefore(first_builder, first_instr);
+   } else {
+      LLVMPositionBuilderAtEnd(first_builder, first_block);
+   }
 
    res = LLVMBuildArrayAlloca(first_builder, type, count, name);
 




More information about the mesa-commit mailing list