]> git.tdb.fi Git - libs/gl.git/blobdiff - source/programcompiler.cpp
Visit the rest of an iteration statement in NodeRemover
[libs/gl.git] / source / programcompiler.cpp
index afb2a3c32ecac3465cfe8620e74f816beeb84473..0559d41e4023fedcf4d485e18049c48b21f798b4 100644 (file)
@@ -8,6 +8,8 @@
 #include "resources.h"
 #include "shader.h"
 
+#undef interface
+
 using namespace std;
 
 namespace {
@@ -1223,6 +1225,13 @@ void ProgramCompiler::FunctionInliner::visit(FunctionCall &call)
                inline_result = 0;
 }
 
+void ProgramCompiler::FunctionInliner::visit(VariableDeclaration &var)
+{
+       if(var.init_expression)
+               visit_and_inline(var.init_expression);
+       inline_result = 0;
+}
+
 void ProgramCompiler::FunctionInliner::visit(Return &ret)
 {
        TraversingVisitor::visit(ret);
@@ -1678,6 +1687,7 @@ void ProgramCompiler::NodeRemover::visit(Iteration &iter)
 {
        if(to_remove.count(iter.init_statement.get()))
                iter.init_statement = 0;
+       TraversingVisitor::visit(iter);
 }