]> git.tdb.fi Git - libs/gl.git/blobdiff - source/glsl/compiler.cpp
Remove unreachable code after a jump statement
[libs/gl.git] / source / glsl / compiler.cpp
index 91a13f4398ed02af892f4f1db567b216fab5b5fa..e2745e1b9ae41fe6756f7b86204bdd16c86dda10 100644 (file)
@@ -107,7 +107,7 @@ void Compiler::compile(Mode mode)
                        ++i;
        }
 
-       LocationAllocator().apply(*module);
+       LocationAllocator().apply(*module, features);
        for(list<Stage>::iterator i=module->stages.begin(); i!=module->stages.end(); ++i)
                finalize(*i, mode);
 
@@ -372,7 +372,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);