There is the NEXT_BLOCK() macro in compile.c. It creates a new block, creates an implicit jump from the current block to the new block, and sets it as the current block.
But why it is used? All seems working if remove NEXT_BLOCK(). If there was a need of NEXT_BLOCK() (if it reduces the computational complexity of compilation or allows some optimizations), it should be documented, and we should analyze the code and add missed NEXT_BLOCK() where they are needed, and perhaps add new tests. Otherwise it can be removed.
Python-Dev mailing list