Goto vs function for error macro