aboutsummaryrefslogtreecommitdiff
path: root/mesalib/src/glsl/ir_hv_accept.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'mesalib/src/glsl/ir_hv_accept.cpp')
-rw-r--r--mesalib/src/glsl/ir_hv_accept.cpp15
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;