(original) (raw)
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.