From 3ec8337bf2d669f487883cc506b3b4841bcddca5 Mon Sep 17 00:00:00 2001 From: Prateek99-s <145468640+Prateek99-s@users.noreply.github.com> Date: Sun, 27 Sep 2026 19:58:08 +0530 Subject: [PATCH] gh-113367: Avoid redundant gotos and labels in Argument Clinic Avoid generating redundant gotos, the intermediate skip_optional_pos label, and the duplicate if (!noptargs) check when a function has optional positional and keyword-only arguments without required keyword-only arguments. --- Lib/test/clinic.test.c | 44 +++----- ...-09-27-19-55-34.gh-issue-113367.ehBi_0.rst | 1 + Modules/_decimal/clinic/_decimal.c.h | 10 +- Modules/clinic/_bisectmodule.c.h | 42 +++---- Modules/clinic/_datetimemodule.c.h | 72 +++++------- Modules/clinic/_elementtree.c.h | 10 +- Modules/clinic/_hashopenssl.c.h | 106 +++++------------- Modules/clinic/_interpretersmodule.c.h | 44 ++------ Modules/clinic/_pickle.c.h | 18 +-- Modules/clinic/_ssl.c.h | 18 +-- Modules/clinic/_testclinic.c.h | 34 ++---- Modules/clinic/_testclinic_depr.c.h | 10 +- Modules/clinic/_testmultiphase.c.h | 10 +- Modules/clinic/blake2module.c.h | 18 +-- Modules/clinic/faulthandler.c.h | 48 +++----- Modules/clinic/itertoolsmodule.c.h | 10 +- Modules/clinic/md5module.c.h | 10 +- Modules/clinic/posixmodule.c.h | 68 +++-------- Modules/clinic/sha1module.c.h | 10 +- Modules/clinic/sha2module.c.h | 34 ++---- Modules/clinic/sha3module.c.h | 10 +- Modules/clinic/socketmodule.c.h | 10 +- Objects/clinic/longobject.c.h | 20 +--- Objects/clinic/memoryobject.c.h | 10 +- Python/clinic/_warnings.c.h | 14 +-- Python/clinic/bltinmodule.c.h | 40 ++----- Tools/clinic/libclinic/parse_args.py | 22 ++-- 27 files changed, 230 insertions(+), 513 deletions(-) create mode 100644 Misc/NEWS.d/next/Tools-Demos/2026-09-27-19-55-34.gh-issue-113367.ehBi_0.rst diff --git a/Lib/test/clinic.test.c b/Lib/test/clinic.test.c index fa71df7f4f9d0e..935d4b322ab33a 100644 --- a/Lib/test/clinic.test.c +++ b/Lib/test/clinic.test.c @@ -2566,18 +2566,14 @@ test_keywords_opt_kwonly(PyObject *module, PyObject *const *args, Py_ssize_t nar } a = args[0]; if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (args[1]) { b = args[1]; if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } if (args[2]) { c = args[2]; if (!--noptargs) { @@ -2595,7 +2591,7 @@ test_keywords_opt_kwonly(PyObject *module, PyObject *const *args, Py_ssize_t nar static PyObject * test_keywords_opt_kwonly_impl(PyObject *module, PyObject *a, PyObject *b, PyObject *c, PyObject *d) -/*[clinic end generated code: output=1e5fbe4eebfd40a5 input=209387a4815e5082]*/ +/*[clinic end generated code: output=4975a8d3cc3dd537 input=209387a4815e5082]*/ /*[clinic input] @@ -3728,18 +3724,14 @@ test_posonly_keywords_opt_kwonly_opt(PyObject *module, PyObject *const *args, Py a = args[0]; b = args[1]; if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (args[2]) { c = args[2]; if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } if (args[3]) { d = args[3]; if (!--noptargs) { @@ -3758,7 +3750,7 @@ static PyObject * test_posonly_keywords_opt_kwonly_opt_impl(PyObject *module, PyObject *a, PyObject *b, PyObject *c, PyObject *d, PyObject *e) -/*[clinic end generated code: output=bcb0088555123966 input=d0883d45876f186c]*/ +/*[clinic end generated code: output=6da0b1784bc3b72a input=d0883d45876f186c]*/ /*[clinic input] @@ -3834,24 +3826,20 @@ test_posonly_keywords_opt2_kwonly_opt(PyObject *module, PyObject *const *args, P } a = args[0]; if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (args[1]) { b = args[1]; if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } if (args[2]) { c = args[2]; if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } if (args[3]) { d = args[3]; if (!--noptargs) { @@ -3870,7 +3858,7 @@ static PyObject * test_posonly_keywords_opt2_kwonly_opt_impl(PyObject *module, PyObject *a, PyObject *b, PyObject *c, PyObject *d, PyObject *e) -/*[clinic end generated code: output=a22d1276d4c2c9c7 input=c95e2e1ec93035ad]*/ +/*[clinic end generated code: output=38e66485d62640d5 input=c95e2e1ec93035ad]*/ /*[clinic input] @@ -3955,24 +3943,20 @@ test_posonly_opt_keywords_opt_kwonly_opt(PyObject *module, PyObject *const *args b = args[1]; skip_optional_posonly: if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (args[2]) { c = args[2]; if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } if (args[3]) { d = args[3]; if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } if (args[4]) { e = args[4]; if (!--noptargs) { @@ -3992,7 +3976,7 @@ test_posonly_opt_keywords_opt_kwonly_opt_impl(PyObject *module, PyObject *a, PyObject *b, PyObject *c, PyObject *d, PyObject *e, PyObject *f) -/*[clinic end generated code: output=ebdbe695ee85a2ea input=9914857713c5bbf8]*/ +/*[clinic end generated code: output=f3a7058554e16338 input=9914857713c5bbf8]*/ /*[clinic input] test_keyword_only_parameter diff --git a/Misc/NEWS.d/next/Tools-Demos/2026-09-27-19-55-34.gh-issue-113367.ehBi_0.rst b/Misc/NEWS.d/next/Tools-Demos/2026-09-27-19-55-34.gh-issue-113367.ehBi_0.rst new file mode 100644 index 00000000000000..c74c4f7e8235a7 --- /dev/null +++ b/Misc/NEWS.d/next/Tools-Demos/2026-09-27-19-55-34.gh-issue-113367.ehBi_0.rst @@ -0,0 +1 @@ +Avoid generating redundant gotos and labels in Argument Clinic when a function has optional positional arguments and optional keyword-only arguments without required keyword-only arguments. diff --git a/Modules/_decimal/clinic/_decimal.c.h b/Modules/_decimal/clinic/_decimal.c.h index 8ad883d8a2d14d..2e5c7a256a9ffe 100644 --- a/Modules/_decimal/clinic/_decimal.c.h +++ b/Modules/_decimal/clinic/_decimal.c.h @@ -643,18 +643,14 @@ _decimal_localcontext(PyObject *module, PyObject *const *args, Py_ssize_t nargs, goto exit; } if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (args[0]) { local = args[0]; if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } if (args[1]) { prec = args[1]; if (!--noptargs) { @@ -7100,4 +7096,4 @@ _decimal_Context_same_quantum(PyObject *context, PyTypeObject *cls, PyObject *co #ifndef _DECIMAL_CONTEXT_APPLY_METHODDEF #define _DECIMAL_CONTEXT_APPLY_METHODDEF #endif /* !defined(_DECIMAL_CONTEXT_APPLY_METHODDEF) */ -/*[clinic end generated code: output=718b1f6c20412350 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=08f053eb7fd36db1 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_bisectmodule.c.h b/Modules/clinic/_bisectmodule.c.h index 454131faf4112b..1694e69d703383 100644 --- a/Modules/clinic/_bisectmodule.c.h +++ b/Modules/clinic/_bisectmodule.c.h @@ -79,7 +79,7 @@ _bisect_bisect_right(PyObject *module, PyObject *const *args, Py_ssize_t nargs, a = args[0]; x = args[1]; if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (args[2]) { { @@ -100,7 +100,7 @@ _bisect_bisect_right(PyObject *module, PyObject *const *args, Py_ssize_t nargs, } } if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } if (args[3]) { @@ -108,13 +108,9 @@ _bisect_bisect_right(PyObject *module, PyObject *const *args, Py_ssize_t nargs, goto exit; } if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } key = args[4]; skip_optional_kwonly: _return_value = _bisect_bisect_right_impl(module, a, x, lo, hi, key); @@ -194,7 +190,7 @@ _bisect_insort_right(PyObject *module, PyObject *const *args, Py_ssize_t nargs, a = args[0]; x = args[1]; if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (args[2]) { { @@ -215,7 +211,7 @@ _bisect_insort_right(PyObject *module, PyObject *const *args, Py_ssize_t nargs, } } if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } if (args[3]) { @@ -223,13 +219,9 @@ _bisect_insort_right(PyObject *module, PyObject *const *args, Py_ssize_t nargs, goto exit; } if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } key = args[4]; skip_optional_kwonly: return_value = _bisect_insort_right_impl(module, a, x, lo, hi, key); @@ -308,7 +300,7 @@ _bisect_bisect_left(PyObject *module, PyObject *const *args, Py_ssize_t nargs, P a = args[0]; x = args[1]; if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (args[2]) { { @@ -329,7 +321,7 @@ _bisect_bisect_left(PyObject *module, PyObject *const *args, Py_ssize_t nargs, P } } if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } if (args[3]) { @@ -337,13 +329,9 @@ _bisect_bisect_left(PyObject *module, PyObject *const *args, Py_ssize_t nargs, P goto exit; } if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } key = args[4]; skip_optional_kwonly: _return_value = _bisect_bisect_left_impl(module, a, x, lo, hi, key); @@ -423,7 +411,7 @@ _bisect_insort_left(PyObject *module, PyObject *const *args, Py_ssize_t nargs, P a = args[0]; x = args[1]; if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (args[2]) { { @@ -444,7 +432,7 @@ _bisect_insort_left(PyObject *module, PyObject *const *args, Py_ssize_t nargs, P } } if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } if (args[3]) { @@ -452,13 +440,9 @@ _bisect_insort_left(PyObject *module, PyObject *const *args, Py_ssize_t nargs, P goto exit; } if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } key = args[4]; skip_optional_kwonly: return_value = _bisect_insort_left_impl(module, a, x, lo, hi, key); @@ -466,4 +450,4 @@ _bisect_insort_left(PyObject *module, PyObject *const *args, Py_ssize_t nargs, P exit: return return_value; } -/*[clinic end generated code: output=62345f14c5c01639 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=f89c341aca4e8fb7 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_datetimemodule.c.h b/Modules/clinic/_datetimemodule.c.h index fac41e7aefc7f4..7e8a456bc8ea8c 100644 --- a/Modules/clinic/_datetimemodule.c.h +++ b/Modules/clinic/_datetimemodule.c.h @@ -790,7 +790,7 @@ datetime_time(PyTypeObject *type, PyObject *args, PyObject *kwargs) goto exit; } if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (fastargs[0]) { hour = PyLong_AsInt(fastargs[0]); @@ -798,7 +798,7 @@ datetime_time(PyTypeObject *type, PyObject *args, PyObject *kwargs) goto exit; } if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } if (fastargs[1]) { @@ -807,7 +807,7 @@ datetime_time(PyTypeObject *type, PyObject *args, PyObject *kwargs) goto exit; } if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } if (fastargs[2]) { @@ -816,7 +816,7 @@ datetime_time(PyTypeObject *type, PyObject *args, PyObject *kwargs) goto exit; } if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } if (fastargs[3]) { @@ -825,19 +825,15 @@ datetime_time(PyTypeObject *type, PyObject *args, PyObject *kwargs) goto exit; } if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } if (fastargs[4]) { tzinfo = fastargs[4]; if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } fold = PyLong_AsInt(fastargs[5]); if (fold == -1 && PyErr_Occurred()) { goto exit; @@ -1131,7 +1127,7 @@ datetime_time_replace(PyObject *self, PyObject *const *args, Py_ssize_t nargs, P goto exit; } if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (args[0]) { hour = PyLong_AsInt(args[0]); @@ -1139,7 +1135,7 @@ datetime_time_replace(PyObject *self, PyObject *const *args, Py_ssize_t nargs, P goto exit; } if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } if (args[1]) { @@ -1148,7 +1144,7 @@ datetime_time_replace(PyObject *self, PyObject *const *args, Py_ssize_t nargs, P goto exit; } if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } if (args[2]) { @@ -1157,7 +1153,7 @@ datetime_time_replace(PyObject *self, PyObject *const *args, Py_ssize_t nargs, P goto exit; } if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } if (args[3]) { @@ -1166,19 +1162,15 @@ datetime_time_replace(PyObject *self, PyObject *const *args, Py_ssize_t nargs, P goto exit; } if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } if (args[4]) { tzinfo = args[4]; if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } fold = PyLong_AsInt(args[5]); if (fold == -1 && PyErr_Occurred()) { goto exit; @@ -1341,7 +1333,7 @@ datetime_datetime(PyTypeObject *type, PyObject *args, PyObject *kwargs) goto exit; } if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (fastargs[3]) { hour = PyLong_AsInt(fastargs[3]); @@ -1349,7 +1341,7 @@ datetime_datetime(PyTypeObject *type, PyObject *args, PyObject *kwargs) goto exit; } if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } if (fastargs[4]) { @@ -1358,7 +1350,7 @@ datetime_datetime(PyTypeObject *type, PyObject *args, PyObject *kwargs) goto exit; } if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } if (fastargs[5]) { @@ -1367,7 +1359,7 @@ datetime_datetime(PyTypeObject *type, PyObject *args, PyObject *kwargs) goto exit; } if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } if (fastargs[6]) { @@ -1376,19 +1368,15 @@ datetime_datetime(PyTypeObject *type, PyObject *args, PyObject *kwargs) goto exit; } if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } if (fastargs[7]) { tzinfo = fastargs[7]; if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } fold = PyLong_AsInt(fastargs[8]); if (fold == -1 && PyErr_Occurred()) { goto exit; @@ -1898,7 +1886,7 @@ datetime_datetime_replace(PyObject *self, PyObject *const *args, Py_ssize_t narg goto exit; } if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (args[0]) { year = PyLong_AsInt(args[0]); @@ -1906,7 +1894,7 @@ datetime_datetime_replace(PyObject *self, PyObject *const *args, Py_ssize_t narg goto exit; } if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } if (args[1]) { @@ -1915,7 +1903,7 @@ datetime_datetime_replace(PyObject *self, PyObject *const *args, Py_ssize_t narg goto exit; } if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } if (args[2]) { @@ -1924,7 +1912,7 @@ datetime_datetime_replace(PyObject *self, PyObject *const *args, Py_ssize_t narg goto exit; } if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } if (args[3]) { @@ -1933,7 +1921,7 @@ datetime_datetime_replace(PyObject *self, PyObject *const *args, Py_ssize_t narg goto exit; } if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } if (args[4]) { @@ -1942,7 +1930,7 @@ datetime_datetime_replace(PyObject *self, PyObject *const *args, Py_ssize_t narg goto exit; } if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } if (args[5]) { @@ -1951,7 +1939,7 @@ datetime_datetime_replace(PyObject *self, PyObject *const *args, Py_ssize_t narg goto exit; } if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } if (args[6]) { @@ -1960,19 +1948,15 @@ datetime_datetime_replace(PyObject *self, PyObject *const *args, Py_ssize_t narg goto exit; } if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } if (args[7]) { tzinfo = args[7]; if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } fold = PyLong_AsInt(args[8]); if (fold == -1 && PyErr_Occurred()) { goto exit; @@ -2091,4 +2075,4 @@ datetime_datetime___reduce__(PyObject *self, PyObject *Py_UNUSED(ignored)) { return datetime_datetime___reduce___impl((PyDateTime_DateTime *)self); } -/*[clinic end generated code: output=8f63509398651723 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=9b521432f8f260f0 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_elementtree.c.h b/Modules/clinic/_elementtree.c.h index a39e738ec538b6..f4ca5bd19c0808 100644 --- a/Modules/clinic/_elementtree.c.h +++ b/Modules/clinic/_elementtree.c.h @@ -1032,18 +1032,14 @@ _elementtree_TreeBuilder___init__(PyObject *self, PyObject *args, PyObject *kwar goto exit; } if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (fastargs[0]) { element_factory = fastargs[0]; if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } if (fastargs[1]) { comment_factory = fastargs[1]; if (!--noptargs) { @@ -1479,4 +1475,4 @@ _elementtree_XMLParser__setevents(PyObject *self, PyObject *const *args, Py_ssiz exit: return return_value; } -/*[clinic end generated code: output=e2e9cf288c4400f6 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=1666e81b87c0ceda input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_hashopenssl.c.h b/Modules/clinic/_hashopenssl.c.h index 17ed37bbd3b619..f91b02dc08ace4 100644 --- a/Modules/clinic/_hashopenssl.c.h +++ b/Modules/clinic/_hashopenssl.c.h @@ -317,18 +317,14 @@ _hashlib_HASH_new(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyO goto exit; } if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (args[1]) { data = args[1]; if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } if (args[2]) { usedforsecurity = PyObject_IsTrue(args[2]); if (usedforsecurity < 0) { @@ -402,18 +398,14 @@ _hashlib_openssl_md5(PyObject *module, PyObject *const *args, Py_ssize_t nargs, goto exit; } if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (args[0]) { data = args[0]; if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } if (args[1]) { usedforsecurity = PyObject_IsTrue(args[1]); if (usedforsecurity < 0) { @@ -487,18 +479,14 @@ _hashlib_openssl_sha1(PyObject *module, PyObject *const *args, Py_ssize_t nargs, goto exit; } if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (args[0]) { data = args[0]; if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } if (args[1]) { usedforsecurity = PyObject_IsTrue(args[1]); if (usedforsecurity < 0) { @@ -573,18 +561,14 @@ _hashlib_openssl_sha224(PyObject *module, PyObject *const *args, Py_ssize_t narg goto exit; } if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (args[0]) { data = args[0]; if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } if (args[1]) { usedforsecurity = PyObject_IsTrue(args[1]); if (usedforsecurity < 0) { @@ -659,18 +643,14 @@ _hashlib_openssl_sha256(PyObject *module, PyObject *const *args, Py_ssize_t narg goto exit; } if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (args[0]) { data = args[0]; if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } if (args[1]) { usedforsecurity = PyObject_IsTrue(args[1]); if (usedforsecurity < 0) { @@ -745,18 +725,14 @@ _hashlib_openssl_sha384(PyObject *module, PyObject *const *args, Py_ssize_t narg goto exit; } if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (args[0]) { data = args[0]; if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } if (args[1]) { usedforsecurity = PyObject_IsTrue(args[1]); if (usedforsecurity < 0) { @@ -831,18 +807,14 @@ _hashlib_openssl_sha512(PyObject *module, PyObject *const *args, Py_ssize_t narg goto exit; } if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (args[0]) { data = args[0]; if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } if (args[1]) { usedforsecurity = PyObject_IsTrue(args[1]); if (usedforsecurity < 0) { @@ -919,18 +891,14 @@ _hashlib_openssl_sha3_224(PyObject *module, PyObject *const *args, Py_ssize_t na goto exit; } if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (args[0]) { data = args[0]; if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } if (args[1]) { usedforsecurity = PyObject_IsTrue(args[1]); if (usedforsecurity < 0) { @@ -1009,18 +977,14 @@ _hashlib_openssl_sha3_256(PyObject *module, PyObject *const *args, Py_ssize_t na goto exit; } if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (args[0]) { data = args[0]; if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } if (args[1]) { usedforsecurity = PyObject_IsTrue(args[1]); if (usedforsecurity < 0) { @@ -1099,18 +1063,14 @@ _hashlib_openssl_sha3_384(PyObject *module, PyObject *const *args, Py_ssize_t na goto exit; } if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (args[0]) { data = args[0]; if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } if (args[1]) { usedforsecurity = PyObject_IsTrue(args[1]); if (usedforsecurity < 0) { @@ -1189,18 +1149,14 @@ _hashlib_openssl_sha3_512(PyObject *module, PyObject *const *args, Py_ssize_t na goto exit; } if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (args[0]) { data = args[0]; if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } if (args[1]) { usedforsecurity = PyObject_IsTrue(args[1]); if (usedforsecurity < 0) { @@ -1279,18 +1235,14 @@ _hashlib_openssl_shake_128(PyObject *module, PyObject *const *args, Py_ssize_t n goto exit; } if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (args[0]) { data = args[0]; if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } if (args[1]) { usedforsecurity = PyObject_IsTrue(args[1]); if (usedforsecurity < 0) { @@ -1369,18 +1321,14 @@ _hashlib_openssl_shake_256(PyObject *module, PyObject *const *args, Py_ssize_t n goto exit; } if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (args[0]) { data = args[0]; if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } if (args[1]) { usedforsecurity = PyObject_IsTrue(args[1]); if (usedforsecurity < 0) { @@ -1986,4 +1934,4 @@ _hashlib_compare_digest(PyObject *module, PyObject *const *args, Py_ssize_t narg #ifndef _HASHLIB_OPENSSL_SHAKE_256_METHODDEF #define _HASHLIB_OPENSSL_SHAKE_256_METHODDEF #endif /* !defined(_HASHLIB_OPENSSL_SHAKE_256_METHODDEF) */ -/*[clinic end generated code: output=cf405e652a340bb2 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=d43bf82c91881fa5 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_interpretersmodule.c.h b/Modules/clinic/_interpretersmodule.c.h index 72792f9b583a66..aa977c50e406f9 100644 --- a/Modules/clinic/_interpretersmodule.c.h +++ b/Modules/clinic/_interpretersmodule.c.h @@ -71,18 +71,14 @@ _interpreters_create(PyObject *module, PyObject *const *args, Py_ssize_t nargs, goto exit; } if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (args[0]) { configobj = args[0]; if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } reqrefs = PyObject_IsTrue(args[1]); if (reqrefs < 0) { goto exit; @@ -414,7 +410,7 @@ _interpreters_exec(PyObject *module, PyObject *const *args, Py_ssize_t nargs, Py id = args[0]; code = args[1]; if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (args[2]) { if (!PyDict_Check(args[2])) { @@ -423,13 +419,9 @@ _interpreters_exec(PyObject *module, PyObject *const *args, Py_ssize_t nargs, Py } shared = args[2]; if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } restricted = PyObject_IsTrue(args[3]); if (restricted < 0) { goto exit; @@ -507,7 +499,7 @@ _interpreters_run_string(PyObject *module, PyObject *const *args, Py_ssize_t nar } script = args[1]; if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (args[2]) { if (!PyDict_Check(args[2])) { @@ -516,13 +508,9 @@ _interpreters_run_string(PyObject *module, PyObject *const *args, Py_ssize_t nar } shared = args[2]; if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } restricted = PyObject_IsTrue(args[3]); if (restricted < 0) { goto exit; @@ -599,7 +587,7 @@ _interpreters_run_func(PyObject *module, PyObject *const *args, Py_ssize_t nargs id = args[0]; func = args[1]; if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (args[2]) { if (!PyDict_Check(args[2])) { @@ -608,13 +596,9 @@ _interpreters_run_func(PyObject *module, PyObject *const *args, Py_ssize_t nargs } shared = args[2]; if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } restricted = PyObject_IsTrue(args[3]); if (restricted < 0) { goto exit; @@ -691,7 +675,7 @@ _interpreters_call(PyObject *module, PyObject *const *args, Py_ssize_t nargs, Py id = args[0]; callable = args[1]; if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (args[2]) { if (!PyTuple_Check(args[2])) { @@ -700,7 +684,7 @@ _interpreters_call(PyObject *module, PyObject *const *args, Py_ssize_t nargs, Py } __clinic_args = args[2]; if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } if (args[3]) { @@ -710,13 +694,9 @@ _interpreters_call(PyObject *module, PyObject *const *args, Py_ssize_t nargs, Py } __clinic_kwargs = args[3]; if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } if (args[4]) { preserve_exc = PyObject_IsTrue(args[4]); if (preserve_exc < 0) { @@ -1200,4 +1180,4 @@ _interpreters_capture_exception(PyObject *module, PyObject *const *args, Py_ssiz exit: return return_value; } -/*[clinic end generated code: output=8c3ca09c304378ad input=a9049054013a1b77]*/ +/*[clinic end generated code: output=243e4d12d60b3772 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_pickle.c.h b/Modules/clinic/_pickle.c.h index 213e817a50a287..585c12db70d48b 100644 --- a/Modules/clinic/_pickle.c.h +++ b/Modules/clinic/_pickle.c.h @@ -698,18 +698,14 @@ _pickle_dump(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject obj = args[0]; file = args[1]; if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (args[2]) { protocol = args[2]; if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } if (args[3]) { fix_imports = PyObject_IsTrue(args[3]); if (fix_imports < 0) { @@ -803,18 +799,14 @@ _pickle_dumps(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObjec } obj = args[0]; if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (args[1]) { protocol = args[1]; if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } if (args[2]) { fix_imports = PyObject_IsTrue(args[2]); if (fix_imports < 0) { @@ -1098,4 +1090,4 @@ _pickle_loads(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObjec exit: return return_value; } -/*[clinic end generated code: output=6331c72b3c427f63 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=76c28e8069b6a1a6 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_ssl.c.h b/Modules/clinic/_ssl.c.h index b0dc01adfc999e..6da6a702aea914 100644 --- a/Modules/clinic/_ssl.c.h +++ b/Modules/clinic/_ssl.c.h @@ -1881,18 +1881,14 @@ _ssl__SSLContext__wrap_socket(PyObject *self, PyObject *const *args, Py_ssize_t goto exit; } if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (args[2]) { hostname_obj = args[2]; if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } if (args[3]) { owner = args[3]; if (!--noptargs) { @@ -1984,18 +1980,14 @@ _ssl__SSLContext__wrap_bio(PyObject *self, PyObject *const *args, Py_ssize_t nar goto exit; } if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (args[3]) { hostname_obj = args[3]; if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } if (args[4]) { owner = args[4]; if (!--noptargs) { @@ -3132,4 +3124,4 @@ _ssl_enum_crls(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObje #define _SSL_SSLSESSION_HAS_TICKET_GETSETDEF {"has_ticket", (getter)_ssl_SSLSession_has_ticket_get, (setter)NULL, _ssl_SSLSession_has_ticket__doc__}, -/*[clinic end generated code: output=42b28429643df3e3 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=c8a1f3abb05a49a2 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_testclinic.c.h b/Modules/clinic/_testclinic.c.h index c3bf217a9e7b7b..3fe31647d694cb 100644 --- a/Modules/clinic/_testclinic.c.h +++ b/Modules/clinic/_testclinic.c.h @@ -1859,18 +1859,14 @@ keywords_opt_kwonly(PyObject *module, PyObject *const *args, Py_ssize_t nargs, P } a = args[0]; if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (args[1]) { b = args[1]; if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } if (args[2]) { c = args[2]; if (!--noptargs) { @@ -2580,18 +2576,14 @@ posonly_keywords_opt_kwonly_opt(PyObject *module, PyObject *const *args, Py_ssiz a = args[0]; b = args[1]; if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (args[2]) { c = args[2]; if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } if (args[3]) { d = args[3]; if (!--noptargs) { @@ -2671,18 +2663,14 @@ posonly_opt_keywords_opt_kwonly_opt(PyObject *module, PyObject *const *args, Py_ b = args[1]; skip_optional_posonly: if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (args[2]) { c = args[2]; if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } d = args[3]; skip_optional_kwonly: return_value = posonly_opt_keywords_opt_kwonly_opt_impl(module, a, b, c, d); @@ -4311,18 +4299,14 @@ alias_pos(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *k goto exit; } if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (args[0]) { a = args[0]; if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } if (args[0]) { PyErr_Format(PyExc_TypeError, "argument for alias_pos() given by " @@ -5349,4 +5333,4 @@ vc_kwonly_vectorcall(PyObject *type, PyObject *const *args, kwnames ? PyTuple_GET_SIZE(kwnames) : 0, NULL, kwnames); } -/*[clinic end generated code: output=8a219f606f1296ac input=a9049054013a1b77]*/ +/*[clinic end generated code: output=2cec42bd6aabf2a7 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_testclinic_depr.c.h b/Modules/clinic/_testclinic_depr.c.h index 1b0195185329a2..9a57012bd53eb0 100644 --- a/Modules/clinic/_testclinic_depr.c.h +++ b/Modules/clinic/_testclinic_depr.c.h @@ -2429,18 +2429,14 @@ depr_alias(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject * goto exit; } if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (args[0]) { a = args[0]; if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } if (args[0]) { PyErr_Format(PyExc_TypeError, "argument for depr_alias() given by " @@ -2681,4 +2677,4 @@ depr_multi(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject * exit: return return_value; } -/*[clinic end generated code: output=858abe8a5a885725 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=a52a4b768419a05c input=a9049054013a1b77]*/ diff --git a/Modules/clinic/_testmultiphase.c.h b/Modules/clinic/_testmultiphase.c.h index a0e4c66451101e..eb11dcbc05d1d2 100644 --- a/Modules/clinic/_testmultiphase.c.h +++ b/Modules/clinic/_testmultiphase.c.h @@ -117,7 +117,7 @@ _testmultiphase_StateAccessType_increment_count_clinic(PyObject *self, PyTypeObj goto exit; } if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (args[0]) { n = PyLong_AsInt(args[0]); @@ -125,13 +125,9 @@ _testmultiphase_StateAccessType_increment_count_clinic(PyObject *self, PyTypeObj goto exit; } if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } twice = PyObject_IsTrue(args[1]); if (twice < 0) { goto exit; @@ -165,4 +161,4 @@ _testmultiphase_StateAccessType_get_count(PyObject *self, PyTypeObject *cls, PyO } return _testmultiphase_StateAccessType_get_count_impl((StateAccessTypeObject *)self, cls); } -/*[clinic end generated code: output=aff91f6219a7baca input=a9049054013a1b77]*/ +/*[clinic end generated code: output=d3145af256f60637 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/blake2module.c.h b/Modules/clinic/blake2module.c.h index dc70abfaf05543..7452257c4ff61e 100644 --- a/Modules/clinic/blake2module.c.h +++ b/Modules/clinic/blake2module.c.h @@ -82,18 +82,14 @@ py_blake2b_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) goto exit; } if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (fastargs[0]) { data_obj = fastargs[0]; if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } if (fastargs[1]) { digest_size = PyLong_AsInt(fastargs[1]); if (digest_size == -1 && PyErr_Occurred()) { @@ -291,18 +287,14 @@ py_blake2s_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) goto exit; } if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (fastargs[0]) { data_obj = fastargs[0]; if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } if (fastargs[1]) { digest_size = PyLong_AsInt(fastargs[1]); if (digest_size == -1 && PyErr_Occurred()) { @@ -506,4 +498,4 @@ _blake2_blake2b_hexdigest(PyObject *self, PyObject *Py_UNUSED(ignored)) { return _blake2_blake2b_hexdigest_impl((Blake2Object *)self); } -/*[clinic end generated code: output=5f76c18211cd7f8f input=a9049054013a1b77]*/ +/*[clinic end generated code: output=b594120c27192a78 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/faulthandler.c.h b/Modules/clinic/faulthandler.c.h index 07a9dd7dc561e1..c956cc0569bd30 100644 --- a/Modules/clinic/faulthandler.c.h +++ b/Modules/clinic/faulthandler.c.h @@ -70,12 +70,12 @@ faulthandler_dump_traceback_py(PyObject *module, PyObject *const *args, Py_ssize goto exit; } if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (args[0]) { file = args[0]; if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } if (args[1]) { @@ -84,13 +84,9 @@ faulthandler_dump_traceback_py(PyObject *module, PyObject *const *args, Py_ssize goto exit; } if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } { Py_ssize_t ival = -1; PyObject *iobj = _PyNumber_Index(args[2]); @@ -232,12 +228,12 @@ faulthandler_py_enable(PyObject *module, PyObject *const *args, Py_ssize_t nargs goto exit; } if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (args[0]) { file = args[0]; if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } if (args[1]) { @@ -246,7 +242,7 @@ faulthandler_py_enable(PyObject *module, PyObject *const *args, Py_ssize_t nargs goto exit; } if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } if (args[2]) { @@ -255,13 +251,9 @@ faulthandler_py_enable(PyObject *module, PyObject *const *args, Py_ssize_t nargs goto exit; } if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } { Py_ssize_t ival = -1; PyObject *iobj = _PyNumber_Index(args[3]); @@ -393,7 +385,7 @@ faulthandler_dump_traceback_later(PyObject *module, PyObject *const *args, Py_ss } timeout_obj = args[0]; if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (args[1]) { repeat = PyObject_IsTrue(args[1]); @@ -401,13 +393,13 @@ faulthandler_dump_traceback_later(PyObject *module, PyObject *const *args, Py_ss goto exit; } if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } if (args[2]) { file = args[2]; if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } if (args[3]) { @@ -416,13 +408,9 @@ faulthandler_dump_traceback_later(PyObject *module, PyObject *const *args, Py_ss goto exit; } if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } { Py_ssize_t ival = -1; PyObject *iobj = _PyNumber_Index(args[4]); @@ -530,12 +518,12 @@ faulthandler_register_py(PyObject *module, PyObject *const *args, Py_ssize_t nar goto exit; } if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (args[1]) { file = args[1]; if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } if (args[2]) { @@ -544,7 +532,7 @@ faulthandler_register_py(PyObject *module, PyObject *const *args, Py_ssize_t nar goto exit; } if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } if (args[3]) { @@ -553,13 +541,9 @@ faulthandler_register_py(PyObject *module, PyObject *const *args, Py_ssize_t nar goto exit; } if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } { Py_ssize_t ival = -1; PyObject *iobj = _PyNumber_Index(args[4]); @@ -782,4 +766,4 @@ faulthandler__raise_exception(PyObject *module, PyObject *const *args, Py_ssize_ #ifndef FAULTHANDLER__RAISE_EXCEPTION_METHODDEF #define FAULTHANDLER__RAISE_EXCEPTION_METHODDEF #endif /* !defined(FAULTHANDLER__RAISE_EXCEPTION_METHODDEF) */ -/*[clinic end generated code: output=14815a5f8afe813f input=a9049054013a1b77]*/ +/*[clinic end generated code: output=b96c325afb2605fc input=a9049054013a1b77]*/ diff --git a/Modules/clinic/itertoolsmodule.c.h b/Modules/clinic/itertoolsmodule.c.h index d9917b47dc9037..cb39db574a18c9 100644 --- a/Modules/clinic/itertoolsmodule.c.h +++ b/Modules/clinic/itertoolsmodule.c.h @@ -788,18 +788,14 @@ itertools_accumulate(PyTypeObject *type, PyObject *args, PyObject *kwargs) } iterable = fastargs[0]; if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (fastargs[1]) { binop = fastargs[1]; if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } initial = fastargs[2]; skip_optional_kwonly: return_value = itertools_accumulate_impl(type, iterable, binop, initial); @@ -980,4 +976,4 @@ itertools_count(PyTypeObject *type, PyObject *args, PyObject *kwargs) exit: return return_value; } -/*[clinic end generated code: output=a34a31f60100e0ff input=a9049054013a1b77]*/ +/*[clinic end generated code: output=39902880b6679729 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/md5module.c.h b/Modules/clinic/md5module.c.h index f76902586dddb2..3202b8557d30da 100644 --- a/Modules/clinic/md5module.c.h +++ b/Modules/clinic/md5module.c.h @@ -144,18 +144,14 @@ _md5_md5(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kw goto exit; } if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (args[0]) { data = args[0]; if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } if (args[1]) { usedforsecurity = PyObject_IsTrue(args[1]); if (usedforsecurity < 0) { @@ -172,4 +168,4 @@ _md5_md5(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kw exit: return return_value; } -/*[clinic end generated code: output=920fe54b9ed06f92 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=41e45e1e4547eb7e input=a9049054013a1b77]*/ diff --git a/Modules/clinic/posixmodule.c.h b/Modules/clinic/posixmodule.c.h index 7c8171c04c0727..a84881ecc4dfaa 100644 --- a/Modules/clinic/posixmodule.c.h +++ b/Modules/clinic/posixmodule.c.h @@ -2775,7 +2775,7 @@ os_mkdir(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kw goto exit; } if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (args[1]) { mode = PyLong_AsInt(args[1]); @@ -2783,13 +2783,9 @@ os_mkdir(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kw goto exit; } if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } if (!MKDIRAT_DIR_FD_CONVERTER(args[2], &dir_fd)) { goto exit; } @@ -3695,18 +3691,14 @@ os_utime(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kw goto exit; } if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (args[1]) { times = args[1]; if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } if (args[2]) { ns = args[2]; if (!--noptargs) { @@ -6802,7 +6794,7 @@ os_symlink(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject * goto exit; } if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (args[2]) { target_is_directory = PyObject_IsTrue(args[2]); @@ -6810,13 +6802,9 @@ os_symlink(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject * goto exit; } if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } if (!SYMLINKAT_DIR_FD_CONVERTER(args[3], &dir_fd)) { goto exit; } @@ -7475,7 +7463,7 @@ os_open(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwn goto exit; } if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (args[2]) { mode = PyLong_AsInt(args[2]); @@ -7483,13 +7471,9 @@ os_open(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwn goto exit; } if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } if (!OPENAT_DIR_FD_CONVERTER(args[3], &dir_fd)) { goto exit; } @@ -9169,7 +9153,7 @@ os_mkfifo(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *k goto exit; } if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (args[1]) { mode = PyLong_AsInt(args[1]); @@ -9177,13 +9161,9 @@ os_mkfifo(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *k goto exit; } if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } if (!MKFIFOAT_DIR_FD_CONVERTER(args[2], &dir_fd)) { goto exit; } @@ -9274,7 +9254,7 @@ os_mknod(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kw goto exit; } if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (args[1]) { mode = PyLong_AsInt(args[1]); @@ -9282,7 +9262,7 @@ os_mknod(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kw goto exit; } if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } if (args[2]) { @@ -9290,13 +9270,9 @@ os_mknod(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kw goto exit; } if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } if (!MKNODAT_DIR_FD_CONVERTER(args[3], &dir_fd)) { goto exit; } @@ -11287,7 +11263,7 @@ os_setxattr(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject goto exit; } if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (args[3]) { flags = PyLong_AsInt(args[3]); @@ -11295,13 +11271,9 @@ os_setxattr(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject goto exit; } if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } follow_symlinks = PyObject_IsTrue(args[4]); if (follow_symlinks < 0) { goto exit; @@ -11477,20 +11449,16 @@ os_listxattr(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject goto exit; } if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (args[0]) { if (!path_converter(args[0], &path)) { goto exit; } if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } follow_symlinks = PyObject_IsTrue(args[1]); if (follow_symlinks < 0) { goto exit; @@ -13747,4 +13715,4 @@ os__emscripten_log(PyObject *module, PyObject *const *args, Py_ssize_t nargs, Py #ifndef OS__EMSCRIPTEN_LOG_METHODDEF #define OS__EMSCRIPTEN_LOG_METHODDEF #endif /* !defined(OS__EMSCRIPTEN_LOG_METHODDEF) */ -/*[clinic end generated code: output=d4e858cbdf280235 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=127f78e6596bd35f input=a9049054013a1b77]*/ diff --git a/Modules/clinic/sha1module.c.h b/Modules/clinic/sha1module.c.h index 4a58d0cd9b82a4..315436d56682fe 100644 --- a/Modules/clinic/sha1module.c.h +++ b/Modules/clinic/sha1module.c.h @@ -144,18 +144,14 @@ _sha1_sha1(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject * goto exit; } if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (args[0]) { data = args[0]; if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } if (args[1]) { usedforsecurity = PyObject_IsTrue(args[1]); if (usedforsecurity < 0) { @@ -172,4 +168,4 @@ _sha1_sha1(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject * exit: return return_value; } -/*[clinic end generated code: output=fd5a917404b68c4f input=a9049054013a1b77]*/ +/*[clinic end generated code: output=b7a5026bb8507b07 input=a9049054013a1b77]*/ diff --git a/Modules/clinic/sha2module.c.h b/Modules/clinic/sha2module.c.h index 07be91e4f6c68f..8c63c2e5420ae0 100644 --- a/Modules/clinic/sha2module.c.h +++ b/Modules/clinic/sha2module.c.h @@ -224,18 +224,14 @@ _sha2_sha256(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject goto exit; } if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (args[0]) { data = args[0]; if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } if (args[1]) { usedforsecurity = PyObject_IsTrue(args[1]); if (usedforsecurity < 0) { @@ -309,18 +305,14 @@ _sha2_sha224(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject goto exit; } if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (args[0]) { data = args[0]; if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } if (args[1]) { usedforsecurity = PyObject_IsTrue(args[1]); if (usedforsecurity < 0) { @@ -394,18 +386,14 @@ _sha2_sha512(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject goto exit; } if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (args[0]) { data = args[0]; if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } if (args[1]) { usedforsecurity = PyObject_IsTrue(args[1]); if (usedforsecurity < 0) { @@ -479,18 +467,14 @@ _sha2_sha384(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject goto exit; } if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (args[0]) { data = args[0]; if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } if (args[1]) { usedforsecurity = PyObject_IsTrue(args[1]); if (usedforsecurity < 0) { @@ -507,4 +491,4 @@ _sha2_sha384(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject exit: return return_value; } -/*[clinic end generated code: output=90625b237c774a9f input=a9049054013a1b77]*/ +/*[clinic end generated code: output=15b038f20a27e4eb input=a9049054013a1b77]*/ diff --git a/Modules/clinic/sha3module.c.h b/Modules/clinic/sha3module.c.h index 7fdc707626c324..d2f58647c87a11 100644 --- a/Modules/clinic/sha3module.c.h +++ b/Modules/clinic/sha3module.c.h @@ -64,18 +64,14 @@ py_sha3_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) goto exit; } if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (fastargs[0]) { data_obj = fastargs[0]; if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } if (fastargs[1]) { usedforsecurity = PyObject_IsTrue(fastargs[1]); if (usedforsecurity < 0) { @@ -320,4 +316,4 @@ _sha3_shake_128_hexdigest(PyObject *self, PyObject *const *args, Py_ssize_t narg exit: return return_value; } -/*[clinic end generated code: output=78284adde71d590c input=a9049054013a1b77]*/ +/*[clinic end generated code: output=e1626a28f7a96e3b input=a9049054013a1b77]*/ diff --git a/Modules/clinic/socketmodule.c.h b/Modules/clinic/socketmodule.c.h index fcccf347a0ae9b..3af1e55c5846b6 100644 --- a/Modules/clinic/socketmodule.c.h +++ b/Modules/clinic/socketmodule.c.h @@ -1147,18 +1147,14 @@ _socket_socket_sendmsg_afalg(PyObject *self, PyObject *const *args, Py_ssize_t n goto exit; } if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (args[0]) { data_arg = args[0]; if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } if (args[1]) { if (!PyLong_Check(args[1])) { _PyArg_BadArgument("sendmsg_afalg", "argument 'op'", "int", args[1]); @@ -2478,4 +2474,4 @@ _socket_CMSG_SPACE(PyObject *module, PyObject *arg) #ifndef _SOCKET_CMSG_SPACE_METHODDEF #define _SOCKET_CMSG_SPACE_METHODDEF #endif /* !defined(_SOCKET_CMSG_SPACE_METHODDEF) */ -/*[clinic end generated code: output=dfe0ca7c716c1183 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=e97b369b1029f0bf input=a9049054013a1b77]*/ diff --git a/Objects/clinic/longobject.c.h b/Objects/clinic/longobject.c.h index 52ecaffa1f4cf3..d5524543e22513 100644 --- a/Objects/clinic/longobject.c.h +++ b/Objects/clinic/longobject.c.h @@ -327,7 +327,7 @@ int_to_bytes(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject * goto exit; } if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (args[0]) { { @@ -348,7 +348,7 @@ int_to_bytes(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject * } } if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } if (args[1]) { @@ -358,13 +358,9 @@ int_to_bytes(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject * } byteorder = args[1]; if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } is_signed = PyObject_IsTrue(args[2]); if (is_signed < 0) { goto exit; @@ -449,7 +445,7 @@ int_from_bytes(PyObject *type, PyObject *const *args, Py_ssize_t nargs, PyObject } bytes_obj = args[0]; if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (args[1]) { if (!PyUnicode_Check(args[1])) { @@ -458,13 +454,9 @@ int_from_bytes(PyObject *type, PyObject *const *args, Py_ssize_t nargs, PyObject } byteorder = args[1]; if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } is_signed = PyObject_IsTrue(args[2]); if (is_signed < 0) { goto exit; @@ -493,4 +485,4 @@ int_is_integer(PyObject *self, PyObject *Py_UNUSED(ignored)) { return int_is_integer_impl(self); } -/*[clinic end generated code: output=d95766fb7ff46963 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=c1899e4339547d7f input=a9049054013a1b77]*/ diff --git a/Objects/clinic/memoryobject.c.h b/Objects/clinic/memoryobject.c.h index d55e7c4ac47576..a37495565061b7 100644 --- a/Objects/clinic/memoryobject.c.h +++ b/Objects/clinic/memoryobject.c.h @@ -212,18 +212,14 @@ memoryview_cast(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObjec } format = args[0]; if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (args[1]) { shape = args[1]; if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } if (!PyUnicode_Check(args[2])) { _PyArg_BadArgument("cast", "argument 'order'", "a unicode character", args[2]); goto exit; @@ -532,4 +528,4 @@ memoryview_index(PyObject *self, PyObject *const *args, Py_ssize_t nargs) exit: return return_value; } -/*[clinic end generated code: output=17a403895f4f778c input=a9049054013a1b77]*/ +/*[clinic end generated code: output=24596e21df872146 input=a9049054013a1b77]*/ diff --git a/Python/clinic/_warnings.c.h b/Python/clinic/_warnings.c.h index a64418be0a830b..94191796412abf 100644 --- a/Python/clinic/_warnings.c.h +++ b/Python/clinic/_warnings.c.h @@ -117,12 +117,12 @@ warnings_warn(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObjec } message = args[0]; if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (args[1]) { category = args[1]; if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } if (args[2]) { @@ -139,19 +139,15 @@ warnings_warn(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObjec stacklevel = ival; } if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } if (args[3]) { source = args[3]; if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } if (!PyTuple_Check(args[4])) { _PyArg_BadArgument("warn", "argument 'skip_file_prefixes'", "tuple", args[4]); goto exit; @@ -284,4 +280,4 @@ warnings_filters_mutated_lock_held(PyObject *module, PyObject *Py_UNUSED(ignored { return warnings_filters_mutated_lock_held_impl(module); } -/*[clinic end generated code: output=fc026d6a21e12170 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=779359b9f8204407 input=a9049054013a1b77]*/ diff --git a/Python/clinic/bltinmodule.c.h b/Python/clinic/bltinmodule.c.h index 5858ca9ff88ec2..050d525282ea18 100644 --- a/Python/clinic/bltinmodule.c.h +++ b/Python/clinic/bltinmodule.c.h @@ -425,7 +425,7 @@ builtin_compile(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObj goto exit; } if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (args[3]) { flags = PyLong_AsInt(args[3]); @@ -433,7 +433,7 @@ builtin_compile(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObj goto exit; } if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } if (args[4]) { @@ -442,7 +442,7 @@ builtin_compile(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObj goto exit; } if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } if (args[5]) { @@ -451,13 +451,9 @@ builtin_compile(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObj goto exit; } if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } if (args[6]) { modname = args[6]; if (!--noptargs) { @@ -653,24 +649,20 @@ builtin_exec(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject } source = args[0]; if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (args[1]) { globals = args[1]; if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } if (args[2]) { locals = args[2]; if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } closure = args[3]; skip_optional_kwonly: return_value = builtin_exec_impl(module, source, globals, locals, closure); @@ -911,18 +903,14 @@ builtin_iter(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject } object = args[0]; if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (args[1]) { stop_value = args[1]; if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } stop_exception = args[2]; skip_optional_kwonly: return_value = builtin_iter_impl(module, object, stop_value, stop_exception); @@ -991,18 +979,14 @@ builtin_aiter(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObjec } object = args[0]; if (!noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } if (args[1]) { stop_value = args[1]; if (!--noptargs) { - goto skip_optional_pos; + goto skip_optional_kwonly; } } -skip_optional_pos: - if (!noptargs) { - goto skip_optional_kwonly; - } stop_exception = args[2]; skip_optional_kwonly: return_value = builtin_aiter_impl(module, object, stop_value, stop_exception); @@ -1501,4 +1485,4 @@ builtin_issubclass(PyObject *module, PyObject *const *args, Py_ssize_t nargs) exit: return return_value; } -/*[clinic end generated code: output=b56739f2e13f616a input=a9049054013a1b77]*/ +/*[clinic end generated code: output=d423798dfd34a939 input=a9049054013a1b77]*/ diff --git a/Tools/clinic/libclinic/parse_args.py b/Tools/clinic/libclinic/parse_args.py index 4caab253fe32cc..727633157690ea 100644 --- a/Tools/clinic/libclinic/parse_args.py +++ b/Tools/clinic/libclinic/parse_args.py @@ -1273,7 +1273,7 @@ def parse_general(self, clang: CLanguage) -> None: parser_code = [] use_parser_code = False break - if add_label and (i == self.pos_only or i == self.max_pos): + if add_label and (i == self.pos_only or (i == self.max_pos and add_label != 'skip_optional_kwonly')): parser_code.append("%s:" % add_label) add_label = None if not p.is_optional(): @@ -1292,18 +1292,26 @@ def parse_general(self, clang: CLanguage) -> None: parser_code.append(libclinic.normalize_snippet(parsearg, indent=4)) else: if i < self.max_pos: - label = 'skip_optional_pos' + # If there are no required keyword-only parameters, gotos from + # optional positional parameters can jump directly to skip_optional_kwonly. + if len(self.parameters) > self.max_pos and not self.min_kw_only: + label = 'skip_optional_kwonly' + else: + label = 'skip_optional_pos' first_opt = max(self.min_pos, self.pos_only) else: label = 'skip_optional_kwonly' first_opt = self.max_pos + self.min_kw_only if i == first_opt: add_label = label - parser_code.append(libclinic.normalize_snippet(""" - if (!noptargs) {{ - goto %s; - }} - """ % add_label, indent=4)) + # Skip redundant 'if (!noptargs)' check when entering keyword-only section + # if it was already checked at the start of optional positional parameters. + if not (i == self.max_pos and self.max_pos > max(self.min_pos, self.pos_only)): + parser_code.append(libclinic.normalize_snippet(""" + if (!noptargs) {{ + goto %s; + }} + """ % add_label, indent=4)) if i + 1 == len(self.parameters): parser_code.append(libclinic.normalize_snippet(parsearg, indent=4)) else: