gallivm: use constant size array, added assertion check
authorBrian Paul <brianp@vmware.com>
Tue, 30 Mar 2010 00:13:31 +0000 (18:13 -0600)
committerBrian Paul <brianp@vmware.com>
Tue, 30 Mar 2010 00:13:31 +0000 (18:13 -0600)
src/gallium/auxiliary/gallivm/lp_bld_printf.c

index ae4d400af39e0a15b13701d505041c6c457a4d0b..78c9ec778b6f11948cf2ba7774a5a30a5efc506d 100644 (file)
@@ -27,6 +27,8 @@
 
 #include <stdio.h>
 
+#include "util/u_debug.h"
+#include "util/u_memory.h"
 #include "lp_bld_printf.h"
 
 
@@ -84,12 +86,14 @@ lp_build_printf(LLVMBuilderRef builder, const char *fmt, ...)
    int i = 0;
    int argcount = lp_get_printf_arg_count(fmt);
    LLVMModuleRef module = LLVMGetGlobalParent(LLVMGetBasicBlockParent(LLVMGetInsertBlock(builder)));
-   LLVMValueRef params[argcount + 1];
+   LLVMValueRef params[50];
    LLVMValueRef fmtarg = lp_build_const_string_variable(module, fmt, strlen(fmt) + 1);
    LLVMValueRef int0 = LLVMConstInt(LLVMInt32Type(), 0, 0);
    LLVMValueRef index[2];
    LLVMValueRef func_printf = LLVMGetNamedFunction(module, "printf");
 
+   assert(Elements(params) >= argcount + 1);
+
    index[0] = index[1] = int0;
 
    if (!func_printf) {