This should only be called by procedures which have just popped a cleanup or resolved one or more fixups.

However, we can't pop more fixups than the fixup depth on the innermost normal cleanup, or else fixups that we try to add to that cleanup will end up in the wrong place. We could try to shrink fixup depths, but that's actually a lot of work for little benefit.

The cleanup type must provide an additional static method: static size_t getExtraSize(size_t); The argument to this method will be the value N, which will also be passed as the first argument to the constructor.

The data stored in the extra storage must obey the same restrictions as normal cleanup member data.

The pointer returned from this method is valid until the cleanup stack is modified.