INT_MIN could actually be a valid exit code in the future, so do some
trivial preparation beforehand by conveying an 'empty' check in a
different way. Any other value would be just as arbitrary and it does
not make sense to widen it, so just add another field and use that.
We still have to assign a value to avoid UB (or complicate the function
a bit more), so we'll just keep INT_MIN there now that we won't use it
if empty is set.