On Mon, Jan 20, 2014 at 5:39 PM, Eric Anholt <e...@anholt.net> wrote: > Erik Faye-Lund <kusmab...@gmail.com> writes: > >> On Mon, Jan 20, 2014 at 8:18 AM, Eric Anholt <e...@anholt.net> wrote: >>> --- >>> src/glsl/opt_algebraic.cpp | 36 ++++++++++++++++++++++++++++++++++++ >>> 1 file changed, 36 insertions(+) >>> >>> diff --git a/src/glsl/opt_algebraic.cpp b/src/glsl/opt_algebraic.cpp >>> index 6b0d992..4aa49e5 100644 >>> --- a/src/glsl/opt_algebraic.cpp >>> +++ b/src/glsl/opt_algebraic.cpp >>> @@ -252,6 +252,42 @@ ir_algebraic_visitor::handle_expression(ir_expression >>> *ir) >>> } >>> break; >>> >>> + case ir_unop_exp: >>> + if (op_expr[0] == NULL) >>> + break; >> >> How can this happen?! > > If the first operand itself isn't an expression (for example, it's a > swizzle of something else).
But what is "something else"? The GLSL grammar defines the arguments to be assignment_expressions, so they should always be expressions, no? _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev