bpo-38304: PyConfig_InitPythonConfig() cannot fail anymore (GH-16509)


PyConfig_InitPythonConfig() and PyConfig_InitIsolatedConfig() no
longer return PyStatus: they cannot fail anymore.
(cherry picked from commit 8462a4936b3a551dc546a6adea04a70b0a07ca67)

Co-authored-by: Victor Stinner <vstinner@redhat.com>
diff --git a/Python/frozenmain.c b/Python/frozenmain.c
index c56938a..7f9cc19 100644
--- a/Python/frozenmain.c
+++ b/Python/frozenmain.c
@@ -40,11 +40,7 @@
     }
 
     PyConfig config;
-    status = PyConfig_InitPythonConfig(&config);
-    if (PyStatus_Exception(status)) {
-        PyConfig_Clear(&config);
-        Py_ExitStatusException(status);
-    }
+    PyConfig_InitPythonConfig(&config);
     config.pathconfig_warnings = 0;   /* Suppress errors from getpath.c */
 
     if ((p = Py_GETENV("PYTHONINSPECT")) && *p != '\0')
diff --git a/Python/initconfig.c b/Python/initconfig.c
index 9164c7c..a41a329 100644
--- a/Python/initconfig.c
+++ b/Python/initconfig.c
@@ -569,7 +569,7 @@
 }
 
 
-PyStatus
+void
 _PyConfig_InitCompatConfig(PyConfig *config)
 {
     memset(config, 0, sizeof(*config));
@@ -603,17 +603,13 @@
 #ifdef MS_WINDOWS
     config->legacy_windows_stdio = -1;
 #endif
-    return _PyStatus_OK();
 }
 
 
-static PyStatus
+static void
 config_init_defaults(PyConfig *config)
 {
-    PyStatus status = _PyConfig_InitCompatConfig(config);
-    if (_PyStatus_EXCEPTION(status)) {
-        return status;
-    }
+    _PyConfig_InitCompatConfig(config);
 
     config->isolated = 0;
     config->use_environment = 1;
@@ -632,35 +628,24 @@
 #ifdef MS_WINDOWS
     config->legacy_windows_stdio = 0;
 #endif
-    return _PyStatus_OK();
 }
 
 
-PyStatus
+void
 PyConfig_InitPythonConfig(PyConfig *config)
 {
-    PyStatus status = config_init_defaults(config);
-    if (_PyStatus_EXCEPTION(status)) {
-        _PyStatus_UPDATE_FUNC(status);
-        return status;
-    }
+    config_init_defaults(config);
 
     config->_config_init = (int)_PyConfig_INIT_PYTHON;
     config->configure_c_stdio = 1;
     config->parse_argv = 1;
-
-    return _PyStatus_OK();
 }
 
 
-PyStatus
+void
 PyConfig_InitIsolatedConfig(PyConfig *config)
 {
-    PyStatus status = config_init_defaults(config);
-    if (_PyStatus_EXCEPTION(status)) {
-        _PyStatus_UPDATE_FUNC(status);
-        return status;
-    }
+    config_init_defaults(config);
 
     config->_config_init = (int)_PyConfig_INIT_ISOLATED;
     config->isolated = 1;
@@ -675,8 +660,6 @@
 #ifdef MS_WINDOWS
     config->legacy_windows_stdio = 0;
 #endif
-
-    return _PyStatus_OK();
 }
 
 
diff --git a/Python/pathconfig.c b/Python/pathconfig.c
index ff4bbf2..7f3fdcc 100644
--- a/Python/pathconfig.c
+++ b/Python/pathconfig.c
@@ -432,16 +432,11 @@
 static PyStatus
 pathconfig_global_read(_PyPathConfig *pathconfig)
 {
-    PyStatus status;
     PyConfig config;
-
-    status = _PyConfig_InitCompatConfig(&config);
-    if (_PyStatus_EXCEPTION(status)) {
-        goto done;
-    }
+    _PyConfig_InitCompatConfig(&config);
 
     /* Call _PyConfig_InitPathConfig() */
-    status = PyConfig_Read(&config);
+    PyStatus status = PyConfig_Read(&config);
     if (_PyStatus_EXCEPTION(status)) {
         goto done;
     }
diff --git a/Python/pylifecycle.c b/Python/pylifecycle.c
index 5174f74..feb9285 100644
--- a/Python/pylifecycle.c
+++ b/Python/pylifecycle.c
@@ -843,11 +843,7 @@
     }
 
     PyConfig config;
-
-    status = _PyConfig_InitCompatConfig(&config);
-    if (_PyStatus_EXCEPTION(status)) {
-        goto done;
-    }
+    _PyConfig_InitCompatConfig(&config);
 
     status = _PyConfig_Copy(&config, src_config);
     if (_PyStatus_EXCEPTION(status)) {
@@ -1070,11 +1066,7 @@
     }
 
     PyConfig config;
-
-    status = _PyConfig_InitCompatConfig(&config);
-    if (_PyStatus_EXCEPTION(status)) {
-        Py_ExitStatusException(status);
-    }
+    _PyConfig_InitCompatConfig(&config);
 
     config.install_signal_handlers = install_sigs;
 
diff --git a/Python/pystate.c b/Python/pystate.c
index 098280d..aba673c 100644
--- a/Python/pystate.c
+++ b/Python/pystate.c
@@ -206,14 +206,7 @@
     interp->id_refcount = -1;
     interp->check_interval = 100;
 
-    PyStatus status = PyConfig_InitPythonConfig(&interp->config);
-    if (_PyStatus_EXCEPTION(status)) {
-        /* Don't report status to caller: PyConfig_InitPythonConfig()
-           can only fail with a memory allocation error. */
-        PyConfig_Clear(&interp->config);
-        PyMem_RawFree(interp);
-        return NULL;
-    }
+    PyConfig_InitPythonConfig(&interp->config);
 
     interp->eval_frame = _PyEval_EvalFrameDefault;
 #ifdef HAVE_DLOPEN