Use autoconf, not gcc version, to decide which warnings we have

This gives more accurate results under Clang, which can only help us
detect more warnings in more places.

Fixes bug 19216; bugfix on 0.2.0.1-alpha
This commit is contained in:
Nick Mathewson
2016-06-01 13:38:36 -04:00
parent ad16c55286
commit 9bbd6502f0
10 changed files with 77 additions and 129 deletions
+1 -1
View File
@@ -176,7 +176,7 @@ void log_fn_ratelim_(struct ratelim_t *ratelim, int severity,
const char *format, ...)
CHECK_PRINTF(5,6);
#if defined(__GNUC__)
#if defined(__GNUC__) && __GNUC__ <= 3
/* These are the GCC varidaic macros, so that older versions of GCC don't
* break. */
-4
View File
@@ -26,11 +26,9 @@
#include "compat.h"
#if GCC_VERSION >= 402
/* 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. */
DISABLE_GCC_WARNING(redundant-decls)
#endif
#include <openssl/opensslv.h>
#include "crypto.h"
@@ -48,9 +46,7 @@ DISABLE_GCC_WARNING(redundant-decls)
#include <openssl/bn.h>
#include <openssl/rsa.h>
#if GCC_VERSION >= 402
ENABLE_GCC_WARNING(redundant-decls)
#endif
#ifdef USE_BUFFEREVENTS
#include <event2/bufferevent_ssl.h>
@@ -2,6 +2,11 @@
#define HAVE_GE25519_SCALARMULT_BASE_CHOOSE_NIELS
#ifdef __clang__
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Woverlength-strings"
#endif
DONNA_NOINLINE static void
ge25519_scalarmult_base_choose_niels(ge25519_niels *t, const uint8_t table[256][96], uint32_t pos, signed char b) {
int64_t breg = (int64_t)b;
@@ -347,5 +352,9 @@ ge25519_scalarmult_base_choose_niels(ge25519_niels *t, const uint8_t table[256][
);
}
#ifdef __clang__
#pragma clang diagnostic pop
#endif
#endif /* defined(ED25519_GCC_64BIT_X86_CHOOSE) */
+1 -1
View File
@@ -2683,7 +2683,7 @@ options_validate_cb(void *old_options, void *options, void *default_options,
#define REJECT(arg) \
STMT_BEGIN *msg = tor_strdup(arg); return -1; STMT_END
#ifdef __GNUC__
#if defined(__GNUC__) && __GNUC__ <= 3
#define COMPLAIN(args...) \
STMT_BEGIN log_warn(LD_CONFIG, args); STMT_END
#else
+2 -2
View File
@@ -28,7 +28,7 @@ int a_tangled_web(int x) NOINLINE;
int we_weave(int x) NOINLINE;
static void abort_handler(int s) NORETURN;
#if GCC_VERSION >= 601
#ifdef HAVE_CFLAG_WNULL_DEREFERENCE
DISABLE_GCC_WARNING(null-dereference)
#endif
int
@@ -50,7 +50,7 @@ crash(int x)
crashtype *= x;
return crashtype;
}
#if GCC_VERSION >= 601
#ifdef HAVE_CFLAG_WNULL_DEREFERENCE
ENABLE_GCC_WARNING(null-dereference)
#endif
+2 -2
View File
@@ -38,13 +38,13 @@
#include <dirent.h>
#endif
#if GCC_VERSION >= 406
#ifdef HAVE_CFLAG_WOVERLENGTH_STRINGS
DISABLE_GCC_WARNING(overlength-strings)
/* We allow huge string constants in the unit tests, but not in the code
* at large. */
#endif
#include "vote_descriptors.inc"
#if GCC_VERSION >= 406
#ifdef HAVE_CFLAG_WOVERLENGTH_STRINGS
ENABLE_GCC_WARNING(overlength-strings)
#endif
+2 -2
View File
@@ -16,13 +16,13 @@
#include "test.h"
#include "test_helpers.h"
#if GCC_VERSION >= 406
#ifdef HAVE_CFLAG_WOVERLENGTH_STRINGS
DISABLE_GCC_WARNING(overlength-strings)
/* We allow huge string constants in the unit tests, but not in the code
* at large. */
#endif
#include "test_descriptors.inc"
#if GCC_VERSION >= 406
#ifdef HAVE_CFLAG_WOVERLENGTH_STRINGS
ENABLE_GCC_WARNING(overlength-strings)
#endif
+2 -2
View File
@@ -490,7 +490,7 @@ test_md_generate(void *arg)
routerinfo_free(ri);
}
#if GCC_VERSION >= 406
#ifdef HAVE_CFLAG_WOVERLENGTH_STRINGS
DISABLE_GCC_WARNING(overlength-strings)
/* We allow huge string constants in the unit tests, but not in the code
* at large. */
@@ -650,7 +650,7 @@ static const char MD_PARSE_TEST_DATA[] =
"id rsa1024 2A8wYpHxnkKJ92orocvIQBzeHlE\n"
"p6 allow 80\n"
;
#if GCC_VERSION >= 406
#ifdef HAVE_CFLAG_WOVERLENGTH_STRINGS
ENABLE_GCC_WARNING(overlength-strings)
#endif