On Wed, Sep 27, 2017 at 8:10 AM, Serhiy Storchaka <storchaka@gmail.com> wrote:
I afraid that this change breaks an assumption in frame_setlineno() about the state of the stack. This can corrupt the stack if you jump from the instruction which is a part of Python operation. For example FOR_ITER expects an iterator on the stack. If you jump to the end of the loop from the middle of an assignment operator and skip say STORE_FAST, you will left an arbitrary value on the stack. This can lead to unpredictable consequences.

Well, probably OT but the solution for that would be to stop using a local stack and instead use explicit addressing.

--
--Guido van Rossum (python.org/~guido)