On 01/20/2014 08:42 AM, Erik Faye-Lund wrote: > 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?
ir_dereference isn't a subclass of ir_expression, for example. > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev