11.12.3.6.13. Define ENSURE_OR_GO_CLEANUP

11.12.3.6.13.1. Define Documentation

ENSURE_OR_GO_CLEANUP(CONDITION)

If condition fails, goto :cleanup label

{
    ...

    status = Operation1();
    ENSURE_OR_GO_CLEANUP(0 == status);

    status = Operation2();
    ENSURE_OR_GO_CLEANUP(0 == status);

    ...

cleanup:
    return status;
}