Mercurial > cpython-lru_cache-weakref
diff Python/compile.c @ 23280:9e22a8702de2 legacy-trunk
If Py_OptimizeFlag is false then always evaluate assert conditions, don't
test __debug__ at runtime. Closes SF patch #548833.
| author | Neil Schemenauer <nascheme@enme.ucalgary.ca> |
|---|---|
| date | Fri, 26 Apr 2002 01:58:53 +0000 |
| parents | e16dbf875303 |
| children | 9e67a0d5705f |
line wrap: on
line diff
--- a/Python/compile.c Fri Apr 26 00:53:34 2002 +0000 +++ b/Python/compile.c Fri Apr 26 01:58:53 2002 +0000 @@ -2664,27 +2664,20 @@ static void com_assert_stmt(struct compiling *c, node *n) { - int a = 0, b = 0; + int a = 0; int i; REQ(n, assert_stmt); /* 'assert' test [',' test] */ - /* Generate code like for + if (Py_OptimizeFlag) + return; + /* Generate code like - if __debug__: - if not <test>: + if not <test>: raise AssertionError [, <message>] where <message> is the second test, if present. */ - - if (Py_OptimizeFlag) - return; - com_addop_name(c, LOAD_GLOBAL, "__debug__"); - com_push(c, 1); - com_addfwref(c, JUMP_IF_FALSE, &a); - com_addbyte(c, POP_TOP); - com_pop(c, 1); com_node(c, CHILD(n, 1)); - com_addfwref(c, JUMP_IF_TRUE, &b); + com_addfwref(c, JUMP_IF_TRUE, &a); com_addbyte(c, POP_TOP); com_pop(c, 1); /* Raise that exception! */ @@ -2696,9 +2689,8 @@ com_addoparg(c, RAISE_VARARGS, i); com_pop(c, i); /* The interpreter does not fall through */ - /* All jumps converge here */ + /* Jump ends up here */ com_backpatch(c, a); - com_backpatch(c, b); com_addbyte(c, POP_TOP); }
