]> git.tdb.fi Git - libs/gl.git/blobdiff - source/glsl/optimize.cpp
Process loop initialization outside the body in UnusedVariableRemover
[libs/gl.git] / source / glsl / optimize.cpp
index 3cb10e862458903a0d07c2da1eec7465e3299ac5..8008465e91344642f76e4fb66ae4a135e8bce66f 100644 (file)
@@ -1574,8 +1574,14 @@ void UnusedVariableRemover::visit(Iteration &iter)
        vector<Node *> saved_refs;
        swap(loop_ext_refs, saved_refs);
        {
+               if(iter.init_statement)
+                       iter.init_statement->visit(*this);
                SetForScope<unsigned> set_loop(in_loop, in_loop+1);
-               TraversingVisitor::visit(iter);
+               if(iter.condition)
+                       iter.condition->visit(*this);
+               iter.body.visit(*this);
+               if(iter.loop_expression)
+                       iter.loop_expression->visit(*this);
        }
        swap(loop_ext_refs, saved_refs);