]> git.tdb.fi Git - libs/gl.git/blobdiff - source/programcompiler.h
Fix unused variable decetion for self-referenging assignments
[libs/gl.git] / source / programcompiler.h
index 3b63c5e906bd257bdd568a6d89527e5fd2e01fb1..f1ea165296b49f5fc122cbc344a6b37693dd182f 100644 (file)
@@ -100,7 +100,10 @@ private:
                std::set<ProgramSyntax::Node *> unused_nodes;
                std::map<ProgramSyntax::VariableDeclaration *, ProgramSyntax::Node *> assignments;
                bool assignment;
+               bool record_target;
                ProgramSyntax::VariableDeclaration *assignment_target;
+               bool indeterminate_target;
+               bool self_referencing;
 
                UnusedVariableLocator();
 
@@ -139,7 +142,7 @@ public:
 private:
        void process();
        void generate(ProgramSyntax::Stage &);
-       void optimize(ProgramSyntax::Stage &);
+       bool optimize(ProgramSyntax::Stage &);
        static void inject_block(ProgramSyntax::Block &, const ProgramSyntax::Block &);
        template<typename T>
        static void apply(ProgramSyntax::Stage &);