summaryrefslogtreecommitdiffstats
path: root/Include
diff options
context:
space:
mode:
authorVictor Stinner <vstinner@redhat.com>2018-08-01 14:41:25 (GMT)
committerGitHub <noreply@github.com>2018-08-01 14:41:25 (GMT)
commitcfc8831f5ed607048679427f7d76d6cb4f8a2e8a (patch)
tree93887fde4a58d448b9b0488ab75fc55bdbbe1a09 /Include
parentfc96437db4fa95dff99d43d4500beaf12bad5bff (diff)
downloadcpython-cfc8831f5ed607048679427f7d76d6cb4f8a2e8a.zip
cpython-cfc8831f5ed607048679427f7d76d6cb4f8a2e8a.tar.gz
cpython-cfc8831f5ed607048679427f7d76d6cb4f8a2e8a.tar.bz2
Define _Py_NO_RETURN for Microsoft C compiler (GH-8606)
Diffstat (limited to 'Include')
-rw-r--r--Include/pyerrors.h8
-rw-r--r--Include/pylifecycle.h4
2 files changed, 7 insertions, 5 deletions
diff --git a/Include/pyerrors.h b/Include/pyerrors.h
index 416d750..4e29954 100644
--- a/Include/pyerrors.h
+++ b/Include/pyerrors.h
@@ -97,13 +97,15 @@ PyAPI_FUNC(void) PyErr_SetExcInfo(PyObject *, PyObject *, PyObject *);
(defined(__GNUC_MAJOR__) && \
((__GNUC_MAJOR__ >= 3) || \
(__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
-#define _Py_NO_RETURN
+# define _Py_NO_RETURN
#endif
/* 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)
#define _PyErr_OCCURRED() PyErr_Occurred()
diff --git a/Include/pylifecycle.h b/Include/pylifecycle.h
index 78f01ee..c58c7ec 100644
--- a/Include/pylifecycle.h
+++ b/Include/pylifecycle.h
@@ -86,7 +86,7 @@ PyAPI_FUNC(void) Py_InitializeEx(int);
#ifndef Py_LIMITED_API
PyAPI_FUNC(_PyInitError) _Py_InitializeFromConfig(
const _PyCoreConfig *config);
-PyAPI_FUNC(void) _Py_FatalInitError(_PyInitError err) _Py_NO_RETURN;
+PyAPI_FUNC(void) _Py_NO_RETURN _Py_FatalInitError(_PyInitError err);
#endif
PyAPI_FUNC(void) Py_Finalize(void);
PyAPI_FUNC(int) Py_FinalizeEx(void);
@@ -105,7 +105,7 @@ PyAPI_FUNC(void) _Py_PyAtExit(void (*func)(PyObject *), PyObject *);
#endif
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. */
#ifndef Py_LIMITED_API