Fix gcc warnings when -Wredundant-decls set

Signed-off-by: Dave Rodgman <dave.rodgman@arm.com>
diff --git a/include/mbedtls/constant_time.h b/include/mbedtls/constant_time.h
index 91a9e7f..2d33adc 100644
--- a/include/mbedtls/constant_time.h
+++ b/include/mbedtls/constant_time.h
@@ -23,6 +23,10 @@
 
 #include <stddef.h>
 
+#ifdef __GNUC__
+    #pragma GCC diagnostic push
+    #pragma GCC diagnostic ignored "-Wredundant-decls"
+#endif
 
 /** Constant-time buffer comparison without branches.
  *
@@ -43,4 +47,8 @@
                       const void *b,
                       size_t n);
 
+#ifdef __GNUC__
+    #pragma GCC diagnostic pop
+#endif
+
 #endif /* MBEDTLS_CONSTANT_TIME_H */
diff --git a/library/constant_time_internal.h b/library/constant_time_internal.h
index 9660758..f0fde6a 100644
--- a/library/constant_time_internal.h
+++ b/library/constant_time_internal.h
@@ -92,9 +92,16 @@
 
 /* constant_time_impl.h contains all the static inline implementations,
  * so that constant_time_internal.h is more readable.
+ *
+ * gcc generates warnings about duplicate declarations, so disable this
+ * warning.
  */
-#include "constant_time_impl.h"
+#ifdef __GNUC__
+    #pragma GCC diagnostic push
+    #pragma GCC diagnostic ignored "-Wredundant-decls"
+#endif
 
+#include "constant_time_impl.h"
 
 /* ============================================================================
  * Boolean operations
@@ -473,4 +480,8 @@
                       const void *b,
                       size_t n);
 
+#ifdef __GNUC__
+    #pragma GCC diagnostic pop
+#endif
+
 #endif /* MBEDTLS_CONSTANT_TIME_INTERNAL_H */