Workaround for compiler bug (GCC 4.8 and 4.9 when targetting 32-bit x86).
[BearSSL] / src / hash / ghash_pclmul.c
index 7ec9823..7c8f2fa 100644 (file)
 #if BR_AES_X86NI_GCC_OLD
 #pragma GCC push_options
 #pragma GCC target("sse2,ssse3,pclmul")
+#pragma GCC diagnostic ignored "-Wpsabi"
 #endif
 #include <tmmintrin.h>
 #include <wmmintrin.h>
 #include <cpuid.h>
-#if BR_AES_X86NI_GCC_OLD
-#pragma GCC pop_options
-#endif
 #endif
 
 #if BR_AES_X86NI_MSC
@@ -349,6 +347,10 @@ br_ghash_pclmul_get(void)
        return pclmul_supported() ? &br_ghash_pclmul : 0;
 }
 
+#if BR_AES_X86NI_GCC && BR_AES_X86NI_GCC_OLD
+#pragma GCC pop_options
+#endif
+
 #else
 
 /* see bearssl_hash.h */