FAIL
#define FAIL 0
#undef FAIL
#define FAIL(_code) do { ecode = _code; goto bad; } while (0)
#define FAIL(_code) do { ecode = _code; goto bad; } while (0)
#undef FAIL
#define FAIL(_code) do { ecode = _code; goto bad; } while (0)
#undef FAIL
#undef FAIL
#define FAIL(_code) do { ecode = _code; goto bad; } while (0)
#undef FAIL
#define FAIL(_code) do { ecode = _code; goto bad; } while (0)
enum err { SUCCESS, FAIL };
#define FAIL(code) { error = (code); goto done; }