@@ -2607,6 +2607,40 @@ create_managed_weakref_nogc_type(PyObject *self, PyObject *Py_UNUSED(args))
26072607}
26082608
26092609
2610+ static PyObject *
2611+ test_soft_deprecated_macros (PyObject * Py_UNUSED (self ), PyObject * Py_UNUSED (args )) {
2612+ // Test soft-deprecated macros
2613+ Py_ALIGNED (64 ) char buf [4 ];
2614+ #ifdef __GNUC__
2615+ // Py_ALIGNED must compile everywhere, but only does something
2616+ // on "supported" compilers, i.e. GCC
2617+ Py_BUILD_ASSERT (__extension__ __alignof__(buf ) >= 64 );
2618+ #endif
2619+ assert (strcmp (PY_FORMAT_SIZE_T , "z" ) == 0 );
2620+ Py_BUILD_ASSERT (Py_LL (123 ) == 123LL );
2621+ Py_BUILD_ASSERT (sizeof (Py_LL (123 )) == sizeof (long long ));
2622+ Py_BUILD_ASSERT (sizeof (Py_ULL (123 )) == sizeof (unsigned long long ));
2623+ Py_BUILD_ASSERT (sizeof (PY_LONG_LONG ) == sizeof (long long ));
2624+ Py_BUILD_ASSERT (sizeof (PY_INT32_T ) == sizeof (int32_t ));
2625+ Py_BUILD_ASSERT (sizeof (PY_UINT32_T ) == sizeof (uint32_t ));
2626+ Py_BUILD_ASSERT (sizeof (PY_INT64_T ) == sizeof (int64_t ));
2627+ Py_BUILD_ASSERT (sizeof (PY_UINT64_T ) == sizeof (uint64_t ));
2628+ Py_BUILD_ASSERT (PY_LLONG_MIN == LLONG_MIN );
2629+ Py_BUILD_ASSERT (PY_LLONG_MAX == LLONG_MAX );
2630+ Py_BUILD_ASSERT (PY_ULLONG_MAX == ULLONG_MAX );
2631+ Py_BUILD_ASSERT (PY_SIZE_MAX == SIZE_MAX );
2632+ Py_BUILD_ASSERT (PY_LLONG_MIN == LLONG_MIN );
2633+ Py_MEMCPY (buf , "abc" , 4 );
2634+ assert (strcmp (buf , "abc" ) == 0 );
2635+ Py_BUILD_ASSERT (Py_UNICODE_SIZE == sizeof (wchar_t ));
2636+ #ifdef Py_UNICODE_WIDE
2637+ Py_BUILD_ASSERT (sizeof (wchar_t ) >= 4 );
2638+ #else
2639+ Py_BUILD_ASSERT (sizeof (wchar_t ) < 4 );
2640+ #endif
2641+ Py_RETURN_NONE ;
2642+ }
2643+
26102644static PyMethodDef TestMethods [] = {
26112645 {"set_errno" , set_errno , METH_VARARGS },
26122646 {"test_config" , test_config , METH_NOARGS },
@@ -2704,6 +2738,7 @@ static PyMethodDef TestMethods[] = {
27042738 {"toggle_reftrace_printer" , toggle_reftrace_printer , METH_O },
27052739 {"create_managed_weakref_nogc_type" ,
27062740 create_managed_weakref_nogc_type , METH_NOARGS },
2741+ {"test_soft_deprecated_macros" , test_soft_deprecated_macros , METH_NOARGS },
27072742 {NULL , NULL } /* sentinel */
27082743};
27092744
@@ -3372,34 +3407,6 @@ _testcapi_exec(PyObject *m)
33723407 PyModule_AddObject (m , "INT64_MAX" , PyLong_FromInt64 (INT64_MAX ));
33733408 PyModule_AddObject (m , "UINT64_MAX" , PyLong_FromUInt64 (UINT64_MAX ));
33743409
3375- // Test soft-deprecated macros
3376- Py_ALIGNED (64 ) char buf [4 ];
3377- #if defined(__GNUC__ )
3378- Py_BUILD_ASSERT (__extension__ __alignof__(buf ) >= 64 );
3379- #endif
3380- assert (strcmp (PY_FORMAT_SIZE_T , "z" ) == 0 );
3381- Py_BUILD_ASSERT (Py_LL (123 ) == 123LL );
3382- Py_BUILD_ASSERT (sizeof (Py_LL (123 )) == sizeof (long long ));
3383- Py_BUILD_ASSERT (sizeof (Py_ULL (123 )) == sizeof (unsigned long long ));
3384- Py_BUILD_ASSERT (sizeof (PY_LONG_LONG ) == sizeof (long long ));
3385- Py_BUILD_ASSERT (sizeof (PY_INT32_T ) == sizeof (int32_t ));
3386- Py_BUILD_ASSERT (sizeof (PY_UINT32_T ) == sizeof (uint32_t ));
3387- Py_BUILD_ASSERT (sizeof (PY_INT64_T ) == sizeof (int64_t ));
3388- Py_BUILD_ASSERT (sizeof (PY_UINT64_T ) == sizeof (uint64_t ));
3389- Py_BUILD_ASSERT (PY_LLONG_MIN == LLONG_MIN );
3390- Py_BUILD_ASSERT (PY_LLONG_MAX == LLONG_MAX );
3391- Py_BUILD_ASSERT (PY_ULLONG_MAX == ULLONG_MAX );
3392- Py_BUILD_ASSERT (PY_SIZE_MAX == SIZE_MAX );
3393- Py_BUILD_ASSERT (PY_LLONG_MIN == LLONG_MIN );
3394- Py_MEMCPY (buf , "abc" , 4 );
3395- assert (strcmp (buf , "abc" ) == 0 );
3396- Py_BUILD_ASSERT (Py_UNICODE_SIZE == sizeof (wchar_t ));
3397- #ifdef Py_UNICODE_WIDE
3398- Py_BUILD_ASSERT (sizeof (wchar_t ) >= 4 );
3399- #else
3400- Py_BUILD_ASSERT (sizeof (wchar_t ) < 4 );
3401- #endif
3402-
34033410#ifdef HAVE_PPOLL
34043411 if (PyModule_AddObjectRef (m , "HAVE_PPOLL" , Py_True ) < 0 ) {
34053412 return -1 ;
0 commit comments