diff options
Diffstat (limited to 'mesalib/src/glsl/ir_hv_accept.cpp')
-rw-r--r-- | mesalib/src/glsl/ir_hv_accept.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/mesalib/src/glsl/ir_hv_accept.cpp b/mesalib/src/glsl/ir_hv_accept.cpp index 0e78fda81..3ce895924 100644 --- a/mesalib/src/glsl/ir_hv_accept.cpp +++ b/mesalib/src/glsl/ir_hv_accept.cpp @@ -66,6 +66,13 @@ visit_list_elements(ir_hierarchical_visitor *v, exec_list *l, ir_visitor_status +ir_rvalue::accept(ir_hierarchical_visitor *v) +{ + return v->visit(this); +} + + +ir_visitor_status ir_variable::accept(ir_hierarchical_visitor *v) { return v->visit(this); @@ -326,6 +333,14 @@ ir_call::accept(ir_hierarchical_visitor *v) if (s != visit_continue) return (s == visit_continue_with_parent) ? visit_continue : s; + if (this->return_deref != NULL) { + v->in_assignee = true; + s = this->return_deref->accept(v); + v->in_assignee = false; + if (s != visit_continue) + return (s == visit_continue_with_parent) ? visit_continue : s; + } + s = visit_list_elements(v, &this->actual_parameters, false); if (s == visit_stop) return s; |