Curve25519 implementation agnostic helpers
*/
+#ifdef __GNUC__
+#define ED_GCC_VERSION (__GNUC__ * 100 + __GNUC_MINOR__)
+#endif
+
+#if __GNUC__ && ED_GCC_VERSION >= 401
+#if ED_GCC_VERSION >= 406
+#pragma GCC diagnostic push
+#endif
+/* Some versions of GCC (particularly on arm) give us bogus warnings here.
+ * Suppress the GCC warning so we can build Tor with -Wstack-protector. */
+#pragma GCC diagnostic ignored "-Wstack-protector"
+#endif
+
/*
* In: b = 2^5 - 2^0
* Out: b = 2^250 - 2^0
/* 2^252 - 2^2 */ curve25519_square_times(b, b, 2);
/* 2^252 - 3 */ curve25519_mul_noinline(two252m3, b, z);
}
+
+#if __GNUC__ && ED_GCC_VERSION >= 406
+#pragma GCC diagnostic pop
+#endif