mirror of
https://github.com/python/cpython.git
synced 2025-10-10 00:43:41 +00:00
Define _Py_NO_RETURN for Microsoft C compiler (GH-8606)
This commit is contained in:
parent
fc96437db4
commit
cfc8831f5e
3 changed files with 8 additions and 6 deletions
|
@ -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);
|
||||||
#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 *);
|
||||||
#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)
|
||||||
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) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue