diff --git a/library/common.h b/library/common.h index 3c472c685d..4e1b2fa2dd 100644 --- a/library/common.h +++ b/library/common.h @@ -334,4 +334,23 @@ static inline void mbedtls_xor_no_simd(unsigned char *r, #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 */