ir_visitor_status ir_copy_propagation_visitor::visit_leave(ir_assignment *ir) { kill(ir->lhs->variable_referenced()); add_copy(ir); return visit_continue; }
int main() { double a = 2.0; double b = 3.0; double (*add_copy)(double *, double *); add_copy = add; printf("a = %lf, b = %lf\n", a, b); printf("The sum is %lf\n", add_copy(&a, &b)); printf("a = %lf, b = %lf\n", a, b); return 0; }