private ContRef target;
private ValRef[] parameters;
- public Jump(ContRef target, ValRef ... parameters) {
+ public Jump(int lineNumber, ContRef target, ValRef ... parameters) {
+ super(lineNumber);
setTarget(target);
setParameters(parameters);
}
}
@Override
- public void generateCode(MethodBuilder mb) {
+ public void generateCode(MethodBuilder mb) {
+ mb.lineNumber(lineNumber);
mb.jump(target, ValRef.getBindings(parameters));
}
@Override
public SSAExit copy(CopyContext context) {
- return new Jump(context.copy(target), context.copy(parameters));
+ return new Jump(lineNumber, context.copy(target), context.copy(parameters));
}
@Override
for(ValRef parameter : parameters)
visitor.visit(parameter);
}
+
+ @Override
+ public void cleanup() {
+ for(ValRef parameter : parameters)
+ parameter.remove();
+ }
}