Let's have some sanity. Introduce a helper to issue a symbol table
warning.
diff --git a/Python/compile.c b/Python/compile.c
index 6b5fa11..2646dbe 100644
--- a/Python/compile.c
+++ b/Python/compile.c
@@ -3983,6 +3983,22 @@
return -1; /* can't get here */
}
+/* Helper function to issue symbol table warnings */
+
+static void
+symtable_warn(struct symtable *st, char *msg)
+{
+ if (PyErr_WarnExplicit(PyExc_SyntaxWarning, msg, st->st_filename,
+ st->st_cur->ste_lineno, NULL, NULL) < 0) {
+ if (PyErr_ExceptionMatches(PyExc_SyntaxWarning)) {
+ PyErr_SetString(PyExc_SyntaxError, msg);
+ PyErr_SyntaxLocation(st->st_filename,
+ st->st_cur->ste_lineno);
+ }
+ st->st_errors++;
+ }
+}
+
/* Helper function for setting lineno and filename */
static int
@@ -4837,22 +4853,7 @@
name);
else
sprintf(buf, GLOBAL_AFTER_USE, name);
- if (PyErr_WarnExplicit(PyExc_SyntaxWarning,
- buf, st->st_filename,
- st->st_cur->ste_lineno,
- NULL, NULL) < 0)
- {
- if (PyErr_ExceptionMatches(
- PyExc_SyntaxWarning))
- {
- PyErr_SetString(
- PyExc_SyntaxError, buf);
- PyErr_SyntaxLocation(
- st->st_filename,
- st->st_cur->ste_lineno);
- }
- st->st_errors++;
- }
+ symtable_warn(st, buf);
}
}
symtable_add_def(st, name, DEF_GLOBAL);