if (s != visit_continue)
return (s == visit_continue_with_parent) ? visit_continue : s;
- for (unsigned i = 0; i < this->get_num_operands(); i++) {
+ for (unsigned i = 0; i < this->num_operands; i++) {
switch (this->operands[i]->accept(v)) {
case visit_continue:
break;
goto done;
case visit_stop:
- return s;
+ return visit_stop;
}
}
return (s == visit_continue_with_parent) ? visit_continue : s;
}
- if (this->shadow_comparitor) {
- s = this->shadow_comparitor->accept(v);
+ if (this->shadow_comparator) {
+ s = this->shadow_comparator->accept(v);
if (s != visit_continue)
return (s == visit_continue_with_parent) ? visit_continue : s;
}
break;
}
- return (s == visit_stop) ? s : v->visit_leave(this);
+ assert(s == visit_continue);
+ return v->visit_leave(this);
}
}
+ir_visitor_status
+ir_demote::accept(ir_hierarchical_visitor *v)
+{
+ ir_visitor_status s = v->visit_enter(this);
+
+ if (s != visit_continue)
+ return (s == visit_continue_with_parent) ? visit_continue : s;
+
+ return v->visit_leave(this);
+}
+
+
ir_visitor_status
ir_if::accept(ir_hierarchical_visitor *v)
{
if (s != visit_continue)
return (s == visit_continue_with_parent) ? visit_continue : s;
- return (s == visit_stop) ? s : v->visit_leave(this);
+ assert(s == visit_continue);
+ return v->visit_leave(this);
}
if (s != visit_continue)
return (s == visit_continue_with_parent) ? visit_continue : s;
- return (s == visit_stop) ? s : v->visit_leave(this);
+ assert(s == visit_continue);
+ return v->visit_leave(this);
}
ir_visitor_status