[issue37500] 3.8.0b2 no longer optimizes away "if 0:" ?

Pablo Galindo Salgado report at bugs.python.org
Fri Jul 5 17:02:56 EDT 2019


Pablo Galindo Salgado <pablogsal at gmail.com> added the comment:

> To add to the confusion, the treatment of "if __debug__:" and "if not __debug__:" is now asymmetric:

After the code in PR 14116 this becomes:

  5           0 LOAD_GLOBAL              0 (print)
              2 LOAD_CONST               1 ('debug')
              4 CALL_FUNCTION            1
              6 POP_TOP
              8 JUMP_ABSOLUTE           30

  7          10 LOAD_GLOBAL              0 (print)
             12 LOAD_CONST               2 ('not debug')
             14 CALL_FUNCTION            1
             16 POP_TOP

  8          18 JUMP_ABSOLUTE           30

  9          20 LOAD_GLOBAL              0 (print)
             22 LOAD_CONST               3 ('NOT DEBUG')
             24 CALL_FUNCTION            1
             26 POP_TOP
             28 JUMP_FORWARD             8 (to 38)

 11     >>   30 LOAD_GLOBAL              0 (print)
             32 LOAD_CONST               4 ('DEBUG')
             34 CALL_FUNCTION            1
             36 POP_TOP
        >>   38 LOAD_CONST               0 (None)
             40 RETURN_VALUE

and

  4           0 JUMP_ABSOLUTE           12

  5           2 LOAD_GLOBAL              0 (print)
              4 LOAD_CONST               1 ('debug')
              6 CALL_FUNCTION            1
              8 POP_TOP
             10 JUMP_FORWARD             8 (to 20)

  7     >>   12 LOAD_GLOBAL              0 (print)
             14 LOAD_CONST               2 ('not debug')
             16 CALL_FUNCTION            1
             18 POP_TOP

  9     >>   20 LOAD_GLOBAL              0 (print)
             22 LOAD_CONST               3 ('NOT DEBUG')
             24 CALL_FUNCTION            1
             26 POP_TOP
             28 JUMP_FORWARD             8 (to 38)

 11          30 LOAD_GLOBAL              0 (print)
             32 LOAD_CONST               4 ('DEBUG')
             34 CALL_FUNCTION            1
             36 POP_TOP
        >>   38 LOAD_CONST               0 (None)

----------

_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue37500>
_______________________________________


More information about the Python-bugs-list mailing list