Fix "GCC diagnostic" in socketmodule.c

Fix regression of changeset 7c6e3358221a on GCC < 4.4. The _socket module
cannot be compiled on "x86 FreeBSD 7.2 3.x" buildbot anymore.
diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c
index 4eb3978..483dae5 100644
--- a/Modules/socketmodule.c
+++ b/Modules/socketmodule.c
@@ -1966,13 +1966,13 @@
     #pragma clang diagnostic push
     #pragma clang diagnostic ignored "-Wtautological-compare"
     #endif
-    #ifdef __GNUC__
+    #if defined(__GNUC__) && ((__GNUC__ == 4) || ((__GNUC__ > 4) && (__GNUC_MINOR__ > 5)))
     #pragma GCC diagnostic push
     #pragma GCC diagnostic ignored "-Wtype-limits"
     #endif
     if (msg->msg_controllen < 0)
         return 0;
-    #ifdef __GNUC__
+    #if defined(__GNUC__) && ((__GNUC__ == 4) || ((__GNUC__ > 4) && (__GNUC_MINOR__ > 5)))
     #pragma GCC diagnostic pop
     #endif
     #ifdef __clang__