Apply implicit conversions to equality operators
authorIan Romanick <ian.d.romanick@intel.com>
Mon, 29 Mar 2010 23:22:38 +0000 (16:22 -0700)
committerIan Romanick <ian.d.romanick@intel.com>
Mon, 29 Mar 2010 23:29:26 +0000 (16:29 -0700)
ast_to_hir.cpp

index 31cd01e..3450d38 100644 (file)
@@ -660,8 +660,9 @@ ast_expression::hir(exec_list *instructions,
        *    applied to one operand that can make them match, in which
        *    case this conversion is done."
        */
-      /* FINISHME: Apply implicit conversions */
-      if (op[0]->type != op[1]->type) {
+      if ((!apply_implicit_conversion(op[0]->type, & op[1], state)
+          && !apply_implicit_conversion(op[1]->type, & op[0], state))
+         || (op[0]->type != op[1]->type)) {
         _mesa_glsl_error(& loc, state, "operands of `%s' must have the same "
                          "type", (this->oper == ast_equal) ? "==" : "!=");
         error_emitted = true;