Issue #28076: Variable annotations should be mangled for private names.

By Ivan Levkivskyi.
diff --git a/Python/compile.c b/Python/compile.c
index 6d64c07..6bab86e 100644
--- a/Python/compile.c
+++ b/Python/compile.c
@@ -4562,6 +4562,7 @@
 compiler_annassign(struct compiler *c, stmt_ty s)
 {
     expr_ty targ = s->v.AnnAssign.target;
+    PyObject* mangled;
 
     assert(s->kind == AnnAssign_kind);
 
@@ -4576,8 +4577,13 @@
         if (s->v.AnnAssign.simple &&
             (c->u->u_scope_type == COMPILER_SCOPE_MODULE ||
              c->u->u_scope_type == COMPILER_SCOPE_CLASS)) {
+            mangled = _Py_Mangle(c->u->u_private, targ->v.Name.id);
+            if (!mangled) {
+                return 0;
+            }
             VISIT(c, expr, s->v.AnnAssign.annotation);
-            ADDOP_O(c, STORE_ANNOTATION, targ->v.Name.id, names)
+            /* ADDOP_N decrefs its argument */
+            ADDOP_N(c, STORE_ANNOTATION, mangled, names);
         }
         break;
     case Attribute_kind: