diff -r 582e8e71f635 a/Tools/clinic/clinic.py b/Tools/clinic/clinic.py --- a/Tools/clinic/clinic.py +++ b/Tools/clinic/clinic.py @@ -3638,7 +3638,11 @@ class DSLParser: parameter_name = parameter.arg name, legacy, kwargs = self.parse_converter(parameter.annotation) - if not default: + if 'py_default' in kwargs and 'c_default' in kwargs: + # Specifying both a Python and C default will bypass further scrutiny + value = unknown + default = unspecified + elif not default: if self.parameter_state == self.ps_optional: fail("Can't have a parameter without a default (" + repr(parameter_name) + ")\nafter a parameter with a default!") value = unspecified