From a8bdb851eb23b6067e24ad955bb8f499b8348b95 Mon Sep 17 00:00:00 2001 From: Taylor Yu Date: Thu, 26 Jul 2018 12:32:34 -0500 Subject: [PATCH] Don't disable an unsupported compiler warning Conditionalize the pragma that temporarily disables -Wunused-const-variable. Some versions of gcc don't support it. We need to do this because of an apparent bug in some libzstd headers. Fixes bug 26785; bugfix on 0.3.2.11. --- changes/bug26785 | 4 ++++ configure.ac | 3 +++ src/common/compress_zstd.c | 4 ++++ 3 files changed, 11 insertions(+) create mode 100644 changes/bug26785 diff --git a/changes/bug26785 b/changes/bug26785 new file mode 100644 index 0000000000..e6392fcbdd --- /dev/null +++ b/changes/bug26785 @@ -0,0 +1,4 @@ + o Minor bugfixes (compilation, portability): + - Don't try to use a pragma to temporarily disable + -Wunused-const-variable if the compiler doesn't support it. + Fixes bug 26785; bugfix on 0.3.2.11. diff --git a/configure.ac b/configure.ac index c883279a60..37a78b779d 100644 --- a/configure.ac +++ b/configure.ac @@ -2143,6 +2143,9 @@ dnl -Wthread-safety-precise if test "$tor_cv_cflags__Woverlength_strings" = "yes"; then AC_DEFINE([HAVE_CFLAG_WOVERLENGTH_STRINGS], 1, [True if we have -Woverlength-strings]) fi + if test "$tor_cv_cflags__warn_unused_const_variable_2" = "yes"; then + AC_DEFINE([HAVE_CFLAG_WUNUSED_CONST_VARIABLE], 1, [True if we have -Wunused-const-variable]) + fi if test "x$enable_fatal_warnings" = "xyes"; then # I'd like to use TOR_CHECK_CFLAGS here, but I can't, since the diff --git a/src/common/compress_zstd.c b/src/common/compress_zstd.c index baa7749f0a..1a7d21d486 100644 --- a/src/common/compress_zstd.c +++ b/src/common/compress_zstd.c @@ -19,10 +19,14 @@ #include "compress_zstd.h" #ifdef HAVE_ZSTD +#ifdef HAVE_CFLAG_WUNUSED_CONST_VARIABLE DISABLE_GCC_WARNING(unused-const-variable) +#endif #include +#ifdef HAVE_CFLAG_WUNUSED_CONST_VARIABLE ENABLE_GCC_WARNING(unused-const-variable) #endif +#endif /** Total number of bytes allocated for Zstandard state. */ static atomic_counter_t total_zstd_allocation;