Browse Source

Enable -Woverlength-strings for GCC>=4.6 on MOST of the code.

IMO it's fine for us to make exceptions to this rule in the unit
tests, but not in the code at large.
Nick Mathewson 8 years ago
parent
commit
4caed2424a
4 changed files with 25 additions and 0 deletions
  1. 1 0
      configure.ac
  2. 8 0
      src/test/test_dir_handle_get.c
  3. 8 0
      src/test/test_helpers.c
  4. 8 0
      src/test/test_microdesc.c

+ 1 - 0
configure.ac

@@ -1757,6 +1757,7 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [
     # and these should be just fine in gcc 4.6
     CFLAGS="$CFLAGS -Wmissing-format-attribute -Wsuggest-attribute=noreturn -Wsync-nand -Wtrampolines -Wunused-but-set-parameter -Wunused-but-set-variable -Wvariadic-macros"
     CFLAGS="$CFLAGS -Wdouble-promotion"
+    CFLAGS="$CFLAGS -Woverlength-strings"
   fi
 
   if test "x$have_gcc47" = "xyes"; then

+ 8 - 0
src/test/test_dir_handle_get.c

@@ -38,7 +38,15 @@
 #include <dirent.h>
 #endif
 
+#if GCC_VERSION >= 406
+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
+ENABLE_GCC_WARNING(overlength-strings)
+#endif
 
 #define NS_MODULE dir_handle_get
 

+ 8 - 0
src/test/test_helpers.c

@@ -16,7 +16,15 @@
 #include "test.h"
 #include "test_helpers.h"
 
+#if GCC_VERSION >= 406
+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
+ENABLE_GCC_WARNING(overlength-strings)
+#endif
 
 /* Return a statically allocated string representing yesterday's date
  * in ISO format. We use it so that state file items are not found to

+ 8 - 0
src/test/test_microdesc.c

@@ -490,6 +490,11 @@ test_md_generate(void *arg)
   routerinfo_free(ri);
 }
 
+#if GCC_VERSION >= 406
+DISABLE_GCC_WARNING(overlength-strings)
+/* We allow huge string constants in the unit tests, but not in the code
+ * at large. */
+#endif
 /* Taken at random from my ~/.tor/cached-microdescs file and then
  * hand-munged */
 static const char MD_PARSE_TEST_DATA[] =
@@ -645,6 +650,9 @@ static const char MD_PARSE_TEST_DATA[] =
   "id rsa1024 2A8wYpHxnkKJ92orocvIQBzeHlE\n"
   "p6 allow 80\n"
   ;
+#if GCC_VERSION >= 406
+ENABLE_GCC_WARNING(overlength-strings)
+#endif
 
 /** More tests for parsing different kinds of microdescriptors, and getting
  * invalid digests trackd from them. */