Add GCC pragmas to silence compiler warning about ffi_prep_closure (GH-23327)

diff --git a/Modules/_ctypes/callbacks.c b/Modules/_ctypes/callbacks.c
index 3686287..654cb93 100644
--- a/Modules/_ctypes/callbacks.c
+++ b/Modules/_ctypes/callbacks.c
@@ -427,15 +427,22 @@ CThunkObject *_ctypes_alloc_callback(PyObject *callable,
         PyErr_Format(PyExc_NotImplementedError, "ffi_prep_closure_loc() is missing");
         goto error;
 #else
-#ifdef MACOSX
+#if defined(__clang__) || defined(MACOSX)
         #pragma clang diagnostic push
         #pragma clang diagnostic ignored "-Wdeprecated-declarations"
 #endif
+#if defined(__GNUC__)
+        #pragma GCC diagnostic push
+        #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#endif
         result = ffi_prep_closure(p->pcl_write, &p->cif, closure_fcn, p);
 
-#ifdef MACOSX
+#if defined(__clang__) || defined(MACOSX)
         #pragma clang diagnostic pop
 #endif
+#if defined(__GNUC__)
+        #pragma GCC diagnostic pop
+#endif
 
 #endif
     }