From 897b82123d3b446778a1ef7537404cd8df1da9c9 Mon Sep 17 00:00:00 2001 From: Jeremy Hylton Date: Fri, 23 Mar 2001 14:08:38 +0000 Subject: Make it illegal to assign to __debug__ as per Guido's request. --- Python/compile.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/Python/compile.c b/Python/compile.c index 3e638ca..df514c7 100644 --- a/Python/compile.c +++ b/Python/compile.c @@ -66,6 +66,9 @@ int Py_OptimizeFlag = 0; #define LATE_FUTURE \ "from __future__ imports must occur at the beginning of the file" +#define ASSIGN_DEBUG \ +"can not assign to __debug__" + #define MANGLE_LEN 256 #define OFF(x) offsetof(PyCodeObject, x) @@ -5181,8 +5184,16 @@ symtable_assign(struct symtable *st, node *n, int flag) if (TYPE(tmp) == LPAR || TYPE(tmp) == LSQB) { n = CHILD(n, 1); goto loop; - } else if (TYPE(tmp) == NAME) + } else if (TYPE(tmp) == NAME) { + if (strcmp(STR(tmp), "__debug__") == 0) { + PyErr_SetString(PyExc_SyntaxError, + ASSIGN_DEBUG); + PyErr_SyntaxLocation(st->st_filename, + n->n_lineno); + st->st_errors++; + } symtable_add_def(st, STR(tmp), DEF_LOCAL | flag); + } return; case dotted_as_name: if (NCH(n) == 3) -- cgit v0.12