I know I said goto's were ok, but this is too much. Variable declarations, and both the target and jump inside macros change this from 'non-nested flow control' to 'custom language dialect'. It's not worth it for three invocations. r-