clone_sm
clone = clone_sm(sm);
new_sm = clone_sm(old_sm);
left_sm = clone_sm(right_sm);
other_sm = clone_sm(right_sm);
new_sm = clone_sm(old_sm);
true_sm = clone_sm(sm);
false_sm = clone_sm(sm);
ret = clone_sm(right);
ret = clone_sm(left);
left = clone_sm(left);
right = clone_sm(right);
tmp = clone_sm(sm);
struct sm_state *clone_sm(struct sm_state *s);
new_sm = clone_sm(sm);