gallivm: Add type checks for the basic operations.
authorJosé Fonseca <jfonseca@vmware.com>
Sun, 8 Aug 2010 20:02:59 +0000 (21:02 +0100)
committerJosé Fonseca <jfonseca@vmware.com>
Sun, 8 Aug 2010 20:02:59 +0000 (21:02 +0100)
src/gallium/auxiliary/gallivm/lp_bld_arit.c

index f5f2623e467850de886d45cb699fb1d10ff6040c..98e8e4916d7a1139fdd6b33b9a96d505103707f3 100644 (file)
@@ -190,6 +190,9 @@ lp_build_add(struct lp_build_context *bld,
    const struct lp_type type = bld->type;
    LLVMValueRef res;
 
+   assert(lp_check_value(type, a));
+   assert(lp_check_value(type, b));
+
    if(a == bld->zero)
       return b;
    if(b == bld->zero)
@@ -273,6 +276,9 @@ lp_build_sub(struct lp_build_context *bld,
    const struct lp_type type = bld->type;
    LLVMValueRef res;
 
+   assert(lp_check_value(type, a));
+   assert(lp_check_value(type, b));
+
    if(b == bld->zero)
       return a;
    if(a == bld->undef || b == bld->undef)
@@ -395,6 +401,9 @@ lp_build_mul(struct lp_build_context *bld,
    LLVMValueRef shift;
    LLVMValueRef res;
 
+   assert(lp_check_value(type, a));
+   assert(lp_check_value(type, b));
+
    if(a == bld->zero)
       return bld->zero;
    if(a == bld->one)
@@ -518,6 +527,9 @@ lp_build_div(struct lp_build_context *bld,
 {
    const struct lp_type type = bld->type;
 
+   assert(lp_check_value(type, a));
+   assert(lp_check_value(type, b));
+
    if(a == bld->zero)
       return bld->zero;
    if(a == bld->one)