X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fglsl%2Foptimize.cpp;h=3cb10e862458903a0d07c2da1eec7465e3299ac5;hb=95312044b7b474af5671eb67f9df8debf96bf54c;hp=1e974c9f01f8eee6d3eea5faabc00b20759ffd37;hpb=209fc09bcf2947ca60ddf15b8903d0c3194c7d5d;p=libs%2Fgl.git diff --git a/source/glsl/optimize.cpp b/source/glsl/optimize.cpp index 1e974c9f..3cb10e86 100644 --- a/source/glsl/optimize.cpp +++ b/source/glsl/optimize.cpp @@ -1324,7 +1324,7 @@ void UnusedVariableRemover::visit(VariableReference &var) { if(composite_reference) r_reference.declaration = var.declaration; - else + else if(var.declaration) referenced(var.declaration, var); } @@ -1332,7 +1332,7 @@ void UnusedVariableRemover::visit(InterfaceBlockReference &iface) { if(composite_reference) r_reference.declaration = iface.declaration; - else + else if(iface.declaration) referenced(iface.declaration, iface); } @@ -1384,6 +1384,7 @@ void UnusedVariableRemover::visit(BinaryExpression &binary) { SetFlag clear_assignment(assignment_target, false); SetFlag clear_composite(composite_reference, false); + SetForScope clear_reference(r_reference, Assignment::Target()); binary.right->visit(*this); }