X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fglsl%2Fir_hierarchical_visitor.h;h=143eb7c8878836a894069bc1bf5821494a0f7656;hb=65cc68f4305a675e27feb7aae0d8a66b2710f3e4;hp=afa780dc91211b19b34ad08fe0a897bba2b031a9;hpb=6c03c576cc49bbb008de66d374f4302ff0fe0390;p=mesa.git diff --git a/src/glsl/ir_hierarchical_visitor.h b/src/glsl/ir_hierarchical_visitor.h index afa780dc912..143eb7c8878 100644 --- a/src/glsl/ir_hierarchical_visitor.h +++ b/src/glsl/ir_hierarchical_visitor.h @@ -82,6 +82,7 @@ public: * \name Visit methods for leaf-node classes */ /*@{*/ + virtual ir_visitor_status visit(class ir_rvalue *); virtual ir_visitor_status visit(class ir_variable *); virtual ir_visitor_status visit(class ir_constant *); virtual ir_visitor_status visit(class ir_loop_jump *); @@ -165,12 +166,20 @@ public: * Extra data parameter passed to the per-node callback function */ void *data; + + /** + * Currently in the LHS of an assignment? + * + * This is set and cleared by the \c ir_assignment::accept method. + */ + bool in_assignee; }; void visit_tree(ir_instruction *ir, void (*callback)(class ir_instruction *ir, void *data), void *data); -ir_visitor_status visit_list_elements(ir_hierarchical_visitor *v, exec_list *l); +ir_visitor_status visit_list_elements(ir_hierarchical_visitor *v, exec_list *l, + bool statement_list = true); #endif /* IR_HIERARCHICAL_VISITOR_H */