He needn't have done so.
He didn't have to do that.