+ vector<Node *> saved_refs;
+ swap(loop_ext_refs, saved_refs);
+ {
+ SetForScope<unsigned> set_loop(in_loop, in_loop+1);
+ TraversingVisitor::visit(iter);
+ }
+ swap(loop_ext_refs, saved_refs);
+
+ /* Visit the external references of the loop again to record assignments
+ done in the loop as used. */
+ for(vector<Node *>::const_iterator i=saved_refs.begin(); i!=saved_refs.end(); ++i)
+ (*i)->visit(*this);