]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
GH-131288: Use `_AddressOfReturnAddress` for MSVC in pycore_ceval.h (gh-131289)
authorChris Eibl <138194463+chris-eibl@users.noreply.github.com>
Fri, 4 Apr 2025 13:03:12 +0000 (15:03 +0200)
committerGitHub <noreply@github.com>
Fri, 4 Apr 2025 13:03:12 +0000 (09:03 -0400)
Use `_AddressOfReturnAddress` in `_Py_get_machine_stack_pointer` to silence MSVC warning in pycore_ceval.h for release builds.

Include/internal/pycore_ceval.h

index 044403a6548b50c51b94a64db3821613fa1c0095..c44f3a283e8fb66b5b63dac4c1b0fde2db59b3e0 100644 (file)
@@ -196,7 +196,7 @@ extern void _PyEval_DeactivateOpCache(void);
 
 /* --- _Py_EnterRecursiveCall() ----------------------------------------- */
 
-#if !_Py__has_builtin(__builtin_frame_address)
+#if !_Py__has_builtin(__builtin_frame_address) && !defined(_MSC_VER)
 static uintptr_t return_pointer_as_int(char* p) {
     return (uintptr_t)p;
 }
@@ -206,6 +206,8 @@ static inline uintptr_t
 _Py_get_machine_stack_pointer(void) {
 #if _Py__has_builtin(__builtin_frame_address)
     return (uintptr_t)__builtin_frame_address(0);
+#elif defined(_MSC_VER)
+    return (uintptr_t)_AddressOfReturnAddress();
 #else
     char here;
     /* Avoid compiler warning about returning stack address */