-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 04/12/2011 09:40 AM, Eric Anholt wrote: > On Mon, 11 Apr 2011 15:51:55 -0700, Ian Romanick <i...@freedesktop.org> wrote: >> -----BEGIN PGP SIGNED MESSAGE----- >> Hash: SHA1 >> >> On 04/09/2011 10:17 PM, Eric Anholt wrote: >>> This prevents later errors (including an assertion failure) from >>> cascading the failure. >>> >>> Fixes invalid-equality-04.vert. >>> --- >>> src/glsl/ast_to_hir.cpp | 10 +++++++--- >>> 1 files changed, 7 insertions(+), 3 deletions(-) >>> >>> diff --git a/src/glsl/ast_to_hir.cpp b/src/glsl/ast_to_hir.cpp >>> index 108c7c3..ea20eba 100644 >>> --- a/src/glsl/ast_to_hir.cpp >>> +++ b/src/glsl/ast_to_hir.cpp >>> @@ -1073,10 +1073,14 @@ ast_expression::hir(exec_list *instructions, >>> error_emitted = true; >>> } >>> >>> - result = do_comparison(ctx, operations[this->oper], op[0], op[1]); >>> - type = glsl_type::bool_type; >>> + if (error_emitted) { >>> + result = new(ctx) ir_constant(false); >>> + } else { >>> + result = do_comparison(ctx, operations[this->oper], op[0], op[1]); >>> + assert(result->type == glsl_type::bool_type); >>> + type = glsl_type::bool_type; >>> + } >> >> Doesn't this leave type unset in the 'if (error_emitted)' case? > > Hmm, so we get the 'type mismatch' in addition to the error message. In > every case it looks to me like type should be set to result->type after > the giant switch(). Can we just kill it?
I think so. I think we can also get rid of error_emitted and just use state->error. It's probably worth slitting that into two patches to be safe. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org/ iEYEARECAAYFAk2kkngACgkQX1gOwKyEAw+BRgCfWIIOpfWWv+uzQHtx7n0upDEh ka0AoJG0cgL1ldEbu0UXI66vgx9/MBAX =qxGC -----END PGP SIGNATURE----- _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev