Fix Python 2.7 try: try: else: bug

This commit is contained in:
rocky
2018-01-29 08:47:53 -05:00
parent 5039a71846
commit 106a325ef1
3 changed files with 22 additions and 0 deletions

Binary file not shown.

View File

@@ -0,0 +1,21 @@
# From 2.7 test_normalize.py
# Bug has to to with finding the end of the tryelse block. I think thrown
# off by the "continue". In instructions the COME_FROM for END_FINALLY
# was at the wrong offset because some sort of "rtarget" was adjust.
# When control flow is in place this logic in the code will be simplified
def test_main(self, c1):
for line in self:
try:
c1 = 6
except:
if c1:
try:
c1 = 5
except:
pass
else:
c1 = 1
continue
pass

View File

@@ -816,6 +816,7 @@ class Scanner2(Scanner):
rtarget = pre_rtarget rtarget = pre_rtarget
else: else:
rtarget = pre_rtarget rtarget = pre_rtarget
pre_rtarget = pre[rtarget]
# Does the "jump if" jump beyond a jump op? # Does the "jump if" jump beyond a jump op?
# That is, we have something like: # That is, we have something like: