diff Python/compile.c @ 76382:f8540b8d076c 3.2

mangle keyword-only argname when loading defaults (closes #14607)
author Benjamin Peterson <benjamin@python.org>
date Tue, 17 Apr 2012 19:53:21 -0400
parents a203802bf6b1
children 79d54fba49b3 22844ddce57b
line wrap: on
line diff
--- a/Python/compile.c	Tue Apr 17 19:48:35 2012 +0200
+++ b/Python/compile.c	Tue Apr 17 19:53:21 2012 -0400
@@ -1319,7 +1319,11 @@
         arg_ty arg = asdl_seq_GET(kwonlyargs, i);
         expr_ty default_ = asdl_seq_GET(kw_defaults, i);
         if (default_) {
-            ADDOP_O(c, LOAD_CONST, arg->arg, consts);
+            PyObject *mangled = _Py_Mangle(c->u->u_private, arg->arg);
+            if (!mangled)
+                return -1;
+            ADDOP_O(c, LOAD_CONST, mangled, consts);
+            Py_DECREF(mangled);
             if (!compiler_visit_expr(c, default_)) {
                 return -1;
             }