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

(cherry picked from commit cce3f0b0c88eba98bc11abe703a444bee7880ff8)

Co-authored-by: Pablo Galindo <Pablogsal@gmail.com>

Co-authored-by: Pablo Galindo <Pablogsal@gmail.com>
diff --git a/Modules/_ctypes/callbacks.c b/Modules/_ctypes/callbacks.c
index 39cace5..19c77f4 100644
--- a/Modules/_ctypes/callbacks.c
+++ b/Modules/_ctypes/callbacks.c
@@ -426,15 +426,22 @@
         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
     }