bpo-41875: Use __builtin_unreachable when possible (GH-22433)

https://github.com/python/cpython/commit/cca896e13b230a934fdb709b7f10c5451ff... commit: cca896e13b230a934fdb709b7f10c5451ffc25ba branch: 3.9 author: Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> committer: GitHub <noreply@github.com> date: 2020-09-28T15:16:24-07:00 summary: bpo-41875: Use __builtin_unreachable when possible (GH-22433) (cherry picked from commit 24ba3b0df5e5f2f237d7b23b4017ba12f16320ae) Co-authored-by: Dong-hee Na <donghee.na92@gmail.com> files: A Misc/NEWS.d/next/Build/2020-09-28-21-56-51.bpo-38249.uzMCaZ.rst M Include/pymacro.h diff --git a/Include/pymacro.h b/Include/pymacro.h index 856cae774d61c..202b936d964f0 100644 --- a/Include/pymacro.h +++ b/Include/pymacro.h @@ -118,7 +118,9 @@ "We've reached an unreachable state. Anything is possible.\n" \ "The limits were in our heads all along. Follow your dreams.\n" \ "https://xkcd.com/2200") -#elif defined(__GNUC__) || defined(__clang__) || defined(__INTEL_COMPILER) +#elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)) +# define Py_UNREACHABLE() __builtin_unreachable() +#elif defined(__clang__) || defined(__INTEL_COMPILER) # define Py_UNREACHABLE() __builtin_unreachable() #elif defined(_MSC_VER) # define Py_UNREACHABLE() __assume(0) diff --git a/Misc/NEWS.d/next/Build/2020-09-28-21-56-51.bpo-38249.uzMCaZ.rst b/Misc/NEWS.d/next/Build/2020-09-28-21-56-51.bpo-38249.uzMCaZ.rst new file mode 100644 index 0000000000000..3e409ec2e7c20 --- /dev/null +++ b/Misc/NEWS.d/next/Build/2020-09-28-21-56-51.bpo-38249.uzMCaZ.rst @@ -0,0 +1,2 @@ +Update :c:macro:`Py_UNREACHABLE` to use __builtin_unreachable() if only the +compiler is able to use it. Patch by Dong-hee Na.
participants (1)
-
Miss Islington (bot)