Make pragmas more specific

Signed-off-by: Ben Taylor <ben.taylor@linaro.org>
diff --git a/library/ssl_tls12_client.c b/library/ssl_tls12_client.c
index 820cab1..21541b8 100644
--- a/library/ssl_tls12_client.c
+++ b/library/ssl_tls12_client.c
@@ -19,7 +19,6 @@
 
 #include "psa_util_internal.h"
 #include "psa/crypto.h"
-#pragma GCC diagnostic warning "-Wenum-conversion"
 #if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED)
 /* Define a local translating function to save code size by not using too many
  * arguments in each translating place. */
@@ -2086,6 +2085,7 @@
             ret = mbedtls_pk_verify_new(pk_alg, peer_pk,
                                         md_alg, hash, hashlen,
                                         p, sig_len);
+            #pragma GCC diagnostic pop
         } else
 #endif /* MBEDTLS_X509_RSASSA_PSS_SUPPORT */
         ret = mbedtls_pk_verify_restartable(peer_pk,
diff --git a/library/ssl_tls13_generic.c b/library/ssl_tls13_generic.c
index cdf4212..cda1f8a 100644
--- a/library/ssl_tls13_generic.c
+++ b/library/ssl_tls13_generic.c
@@ -25,7 +25,6 @@
 
 #include "psa/crypto.h"
 #include "psa_util_internal.h"
-#pragma GCC diagnostic warning "-Wenum-conversion"
 
 #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_EPHEMERAL_ENABLED)
 /* Define a local translating function to save code size by not using too many
@@ -964,9 +963,12 @@
 
         MBEDTLS_SSL_DEBUG_BUF(3, "verify hash", verify_hash, verify_hash_len);
 
+        #pragma GCC diagnostic push
+        #pragma GCC diagnostic warning "-Wenum-conversion"
         if ((ret = mbedtls_pk_sign_ext(pk_type, own_key,
                                        md_alg, verify_hash, verify_hash_len,
                                        p + 4, (size_t) (end - (p + 4)), &signature_len)) != 0) {
+        #pragma GCC diagnostic pop
             MBEDTLS_SSL_DEBUG_MSG(2, ("CertificateVerify signature failed with %s",
                                       mbedtls_ssl_sig_alg_to_str(*sig_alg)));
             MBEDTLS_SSL_DEBUG_RET(2, "mbedtls_pk_sign_ext", ret);
diff --git a/library/x509_crt.c b/library/x509_crt.c
index b6d95f5..3947eb0 100644
--- a/library/x509_crt.c
+++ b/library/x509_crt.c
@@ -17,8 +17,6 @@
  *  [SIRO] https://cabforum.org/wp-content/uploads/Chunghwatelecom201503cabforumV4.pdf
  */
 
-#pragma GCC diagnostic warning "-Wenum-conversion"
-
 #include "x509_internal.h"
 
 #if defined(MBEDTLS_X509_CRT_PARSE_C)
diff --git a/tests/suites/test_suite_x509write.function b/tests/suites/test_suite_x509write.function
index 5e3d470..e0aad90 100644
--- a/tests/suites/test_suite_x509write.function
+++ b/tests/suites/test_suite_x509write.function
@@ -14,7 +14,6 @@
 #include <mbedtls/private/pk_private.h>
 #endif /* MBEDTLS_PK_HAVE_PRIVATE_HEADER */
 #include "mbedtls/psa_util.h"
-#pragma GCC diagnostic warning "-Wenum-conversion"
 
 #if defined(MBEDTLS_USE_PSA_CRYPTO) && \
     defined(MBEDTLS_PEM_WRITE_C) && defined(MBEDTLS_X509_CSR_WRITE_C)