glsl2: Validate that ir_if conditions are actually bool.

This commit is contained in:
Eric Anholt
2010-07-22 16:24:49 -07:00
parent 85e93da18c
commit 432b787b29

View File

@@ -59,6 +59,7 @@ public:
virtual ir_visitor_status visit(ir_variable *v); virtual ir_visitor_status visit(ir_variable *v);
virtual ir_visitor_status visit(ir_dereference_variable *ir); 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_enter(ir_function *ir);
virtual ir_visitor_status visit_leave(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; 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_visitor_status
ir_validate::visit_enter(ir_function *ir) ir_validate::visit_enter(ir_function *ir)