gotoerr
#define gotoerr(errcode) { error = errcode; goto release; }
#define gotoerr(errcode) { error = errcode; goto release; }
#define gotoerr(e) do { error = (e); goto bad; } while (0)
#define gotoerr(x) { error = x ; goto bad; }
#define gotoerr(e) { error = e; goto flush; }
#undef gotoerr