]> git.tdb.fi Git - libs/gl.git/blobdiff - source/glsl/reflect.h
Fix a name conflict in certain inlining scenarios
[libs/gl.git] / source / glsl / reflect.h
index d48fbec156506f31fda79fd86aa676b8257a128d..7c4d26c47fe6714321d2d50588e877053c3bcb5b 100644 (file)
@@ -104,6 +104,23 @@ private:
        virtual void visit(FunctionDeclaration &);
 };
 
+class AssignmentCollector: private TraversingVisitor
+{
+private:
+       bool assignment_target = false;
+       std::set<Node *> assigned_variables;
+
+public:
+       std::set<Node *> apply(Node &);
+
+private:
+       virtual void visit(VariableReference &);
+       virtual void visit(InterfaceBlockReference &);
+       virtual void visit(UnaryExpression &);
+       virtual void visit(BinaryExpression &);
+       virtual void visit(Assignment &);
+};
+
 } // namespace SL
 } // namespace GL
 } // namespace Msp