Mesa (glsl2): glsl2: Validate that ir_if conditions are actually bool.

Eric Anholt anholt at kemper.freedesktop.org
Thu Jul 22 23:35:04 UTC 2010


Module: Mesa
Branch: glsl2
Commit: 432b787b29202301dbfc139c3289521b0bfc3dec
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=432b787b29202301dbfc139c3289521b0bfc3dec

Author: Eric Anholt <eric at anholt.net>
Date:   Thu Jul 22 16:24:49 2010 -0700

glsl2: Validate that ir_if conditions are actually bool.

---

 src/glsl/ir_validate.cpp |   13 +++++++++++++
 1 files changed, 13 insertions(+), 0 deletions(-)

diff --git a/src/glsl/ir_validate.cpp b/src/glsl/ir_validate.cpp
index c05edf2..bb381a0 100644
--- a/src/glsl/ir_validate.cpp
+++ b/src/glsl/ir_validate.cpp
@@ -59,6 +59,7 @@ public:
 
    virtual ir_visitor_status visit(ir_variable *v);
    virtual ir_visitor_status visit(ir_dereference_variable *ir);
+   virtual ir_visitor_status visit(ir_if *ir);
 
    virtual ir_visitor_status visit_enter(ir_function *ir);
    virtual ir_visitor_status visit_leave(ir_function *ir);
@@ -93,6 +94,18 @@ ir_validate::visit(ir_dereference_variable *ir)
    return visit_continue;
 }
 
+ir_visitor_status
+ir_validate::visit(ir_if *ir)
+{
+   if (ir->condition->type != glsl_type::bool_type) {
+      printf("ir_if condition %s type instead of bool.\n",
+	     ir->condition->type->name);
+      ir->print();
+      printf("\n");
+      abort();
+   }
+}
+
 
 ir_visitor_status
 ir_validate::visit_enter(ir_function *ir)




More information about the mesa-commit mailing list