Introduce MBEDTLS_IGNORE_UNREACHABLE_BEGIN

Signed-off-by: Dave Rodgman <dave.rodgman@arm.com>
diff --git a/library/common.h b/library/common.h
index 3c472c6..4e1b2fa 100644
--- a/library/common.h
+++ b/library/common.h
@@ -334,4 +334,23 @@
 #define MBEDTLS_OPTIMIZE_FOR_PERFORMANCE
 #endif
 
+/* Define macros that can be used to disable warnings about unreachable code. */
+#if defined(__clang__)
+
+#define MBEDTLS_PRAGMA(x) _Pragma(#x)
+
+#define MBEDTLS_IGNORE_UNREACHABLE_BEGIN \
+    MBEDTLS_PRAGMA(clang diagnostic push) \
+    MBEDTLS_PRAGMA(clang diagnostic ignored "-Wunreachable-code")
+
+#define MBEDTLS_IGNORE_UNREACHABLE_END \
+    MBEDTLS_PRAGMA(clang diagnostic pop)
+
+#else
+
+#define MBEDTLS_IGNORE_UNREACHABLE_BEGIN
+#define MBEDTLS_IGNORE_UNREACHABLE_END
+
+#endif
+
 #endif /* MBEDTLS_LIBRARY_COMMON_H */