Get MBEDTLS_MAYBE_UNUSED to cover more compilers

Signed-off-by: Dave Rodgman <dave.rodgman@arm.com>
diff --git a/library/common.h b/library/common.h
index 910106b..436e35a 100644
--- a/library/common.h
+++ b/library/common.h
@@ -335,15 +335,23 @@
 #endif
 
 /* Suppress compiler warnings for unused functions and variables. */
-#if defined(__GNUC__)
-#define MBEDTLS_MAYBE_UNUSED __attribute__((unused))
-#elif defined(__IAR_SYSTEMS_ICC__) && defined(__VER__)
-#if (__VER__ >= 8000000)
+#if !defined(MBEDTLS_MAYBE_UNUSED) && defined(__GNUC__)
 #define MBEDTLS_MAYBE_UNUSED __attribute__((unused))
 #endif
-#elif defined(_MSC_VER)
+#if !defined(MBEDTLS_MAYBE_UNUSED) && defined(__IAR_SYSTEMS_ICC__) && defined(__VER__)
+#if (__VER__ >= 8010000) // IAR 8.1 or later
+#define MBEDTLS_MAYBE_UNUSED __attribute__((unused))
+#endif
+#endif
+#if !defined(MBEDTLS_MAYBE_UNUSED) && defined(_MSC_VER)
 #define MBEDTLS_MAYBE_UNUSED __pragma(warning(suppress:4189))
-#else
+#endif
+#if !defined(MBEDTLS_MAYBE_UNUSED) && defined(__has_attribute)
+#if __has_attribute(unused)
+#define MBEDTLS_MAYBE_UNUSED __attribute__((unused))
+#endif
+#endif
+#if !defined(MBEDTLS_MAYBE_UNUSED)
 #define MBEDTLS_MAYBE_UNUSED
 #endif