]> git.tdb.fi Git - libs/gl.git/blobdiff - source/glsl/compiler.cpp
Validate GLSL flow control
[libs/gl.git] / source / glsl / compiler.cpp
index 0ad41dfac46c2de102c827e17fa550b421166f3e..7021c62d9a2949c9459e6fa183955829bf04f469 100644 (file)
@@ -323,6 +323,7 @@ void Compiler::validate(Stage &stage)
        IdentifierValidator().apply(stage);
        ReferenceValidator().apply(stage);
        ExpressionValidator().apply(stage);
+       FlowControlValidator().apply(stage);
        StageInterfaceValidator().apply(stage);
 }
 
@@ -372,7 +373,8 @@ Compiler::OptimizeResult Compiler::optimize(Stage &stage)
 
        /* Removing variables or functions may cause things from the previous stage
        to become unused. */
-       bool any_removed = UnusedVariableRemover().apply(stage);
+       bool any_removed = UnreachableCodeRemover().apply(stage);
+       any_removed |= UnusedVariableRemover().apply(stage);
        any_removed |= UnusedFunctionRemover().apply(stage);
        any_removed |= UnusedTypeRemover().apply(stage);