Another way, of course, is to initialize `old_fetchhead` to -1 and check that under `cleanup`.

However, if we are talking about semantics of different cleanup sequences, a few lines above there is a simple `return error` (instead of a `goto cleanup`).

My preference would, of course, be to do something else:

```
declare_sequence1

do {
    declare_sequence2;

    run_sequence1;

    do {
        run_sequence2;
    } while (false);

    cleanup_sequence2;
} while (false);

cleanup_sequence1
```