Procházet zdrojové kódy

Fix tortls.c build with GCC<4.6

apparantly, "pragma GCC diagnostic push/pop" don't exist with older versions.

Fixes bug in 740e592790f570c446cbb5e6d4a77f842f75; bug not in any
released Tor.
Nick Mathewson před 9 roky
rodič
revize
b2663298e9
1 změnil soubory, kde provedl 11 přidání a 1 odebrání
  1. 11 1
      src/common/tortls.c

+ 11 - 1
src/common/tortls.c

@@ -31,7 +31,13 @@
 #endif
 
 #ifdef __GNUC__
+#define GCC_VERSION (__GNUC__ * 100 + __GNUC_MINOR__)
+#endif
+
+#if __GNUC__ && GCC_VERSION >= 402
+#if GCC_VERSION >= 406
 #pragma GCC diagnostic push
+#endif
 /* Some versions of OpenSSL declare SSL_get_selected_srtp_profile twice in
  * srtp.h. Suppress the GCC warning so we can build with -Wredundant-decl. */
 #pragma GCC diagnostic ignored "-Wredundant-decls"
@@ -45,8 +51,12 @@
 #include <openssl/bio.h>
 #include <openssl/opensslv.h>
 
-#ifdef __GNUC__
+#if __GNUC__ && GCC_VERSION >= 402
+#if GCC_VERSION >= 406
 #pragma GCC diagnostic pop
+#else
+#pragma GCC diagnostic warning "-Wredundant-decls"
+#endif
 #endif
 
 #ifdef USE_BUFFEREVENTS