Unverified Kaydet (Commit) cfc8831f authored tarafından Victor Stinner's avatar Victor Stinner Kaydeden (comit) GitHub

Define _Py_NO_RETURN for Microsoft C compiler (GH-8606)

üst fc96437d
...@@ -97,13 +97,15 @@ PyAPI_FUNC(void) PyErr_SetExcInfo(PyObject *, PyObject *, PyObject *); ...@@ -97,13 +97,15 @@ PyAPI_FUNC(void) PyErr_SetExcInfo(PyObject *, PyObject *, PyObject *);
(defined(__GNUC_MAJOR__) && \ (defined(__GNUC_MAJOR__) && \
((__GNUC_MAJOR__ >= 3) || \ ((__GNUC_MAJOR__ >= 3) || \
(__GNUC_MAJOR__ == 2) && (__GNUC_MINOR__ >= 5))) (__GNUC_MAJOR__ == 2) && (__GNUC_MINOR__ >= 5)))
#define _Py_NO_RETURN __attribute__((__noreturn__)) # define _Py_NO_RETURN __attribute__((__noreturn__))
#elif defined(_MSC_VER)
# define _Py_NO_RETURN __declspec(noreturn)
#else #else
#define _Py_NO_RETURN # define _Py_NO_RETURN
#endif #endif
/* Defined in Python/pylifecycle.c */ /* Defined in Python/pylifecycle.c */
PyAPI_FUNC(void) Py_FatalError(const char *message) _Py_NO_RETURN; PyAPI_FUNC(void) _Py_NO_RETURN Py_FatalError(const char *message);
#if defined(Py_DEBUG) || defined(Py_LIMITED_API) #if defined(Py_DEBUG) || defined(Py_LIMITED_API)
#define _PyErr_OCCURRED() PyErr_Occurred() #define _PyErr_OCCURRED() PyErr_Occurred()
......
...@@ -86,7 +86,7 @@ PyAPI_FUNC(void) Py_InitializeEx(int); ...@@ -86,7 +86,7 @@ PyAPI_FUNC(void) Py_InitializeEx(int);
#ifndef Py_LIMITED_API #ifndef Py_LIMITED_API
PyAPI_FUNC(_PyInitError) _Py_InitializeFromConfig( PyAPI_FUNC(_PyInitError) _Py_InitializeFromConfig(
const _PyCoreConfig *config); const _PyCoreConfig *config);
PyAPI_FUNC(void) _Py_FatalInitError(_PyInitError err) _Py_NO_RETURN; PyAPI_FUNC(void) _Py_NO_RETURN _Py_FatalInitError(_PyInitError err);
#endif #endif
PyAPI_FUNC(void) Py_Finalize(void); PyAPI_FUNC(void) Py_Finalize(void);
PyAPI_FUNC(int) Py_FinalizeEx(void); PyAPI_FUNC(int) Py_FinalizeEx(void);
...@@ -105,7 +105,7 @@ PyAPI_FUNC(void) _Py_PyAtExit(void (*func)(PyObject *), PyObject *); ...@@ -105,7 +105,7 @@ PyAPI_FUNC(void) _Py_PyAtExit(void (*func)(PyObject *), PyObject *);
#endif #endif
PyAPI_FUNC(int) Py_AtExit(void (*func)(void)); PyAPI_FUNC(int) Py_AtExit(void (*func)(void));
PyAPI_FUNC(void) Py_Exit(int) _Py_NO_RETURN; PyAPI_FUNC(void) _Py_NO_RETURN Py_Exit(int);
/* Restore signals that the interpreter has called SIG_IGN on to SIG_DFL. */ /* Restore signals that the interpreter has called SIG_IGN on to SIG_DFL. */
#ifndef Py_LIMITED_API #ifndef Py_LIMITED_API
......
...@@ -2212,7 +2212,7 @@ call_ll_exitfuncs(void) ...@@ -2212,7 +2212,7 @@ call_ll_exitfuncs(void)
fflush(stderr); fflush(stderr);
} }
void void _Py_NO_RETURN
Py_Exit(int sts) Py_Exit(int sts)
{ {
if (Py_FinalizeEx() < 0) { if (Py_FinalizeEx() < 0) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment