]> git.tdb.fi Git - libs/gl.git/blobdiff - source/glsl/optimize.cpp
Assign a result type to all expressions
[libs/gl.git] / source / glsl / optimize.cpp
index f4626f3dfde4a30b91658d5e981b458fad9ab7c5..1aad8d1b311adcecf27904b8e29efb49892d98a6 100644 (file)
@@ -629,6 +629,29 @@ bool UnusedTypeRemover::apply(Stage &stage)
        return !unused_nodes.empty();
 }
 
+void UnusedTypeRemover::visit(Literal &literal)
+{
+       unused_nodes.erase(literal.type);
+}
+
+void UnusedTypeRemover::visit(UnaryExpression &unary)
+{
+       unused_nodes.erase(unary.type);
+       TraversingVisitor::visit(unary);
+}
+
+void UnusedTypeRemover::visit(BinaryExpression &binary)
+{
+       unused_nodes.erase(binary.type);
+       TraversingVisitor::visit(binary);
+}
+
+void UnusedTypeRemover::visit(FunctionCall &call)
+{
+       unused_nodes.erase(call.type);
+       TraversingVisitor::visit(call);
+}
+
 void UnusedTypeRemover::visit(BasicTypeDeclaration &type)
 {
        if(type.base_type)