Quellcode durchsuchen

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 vor 10 Jahren
Ursprung
Commit
4caed2424a
4 geänderte Dateien mit 25 neuen und 0 gelöschten Zeilen
  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
     # 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 -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 -Wdouble-promotion"
+    CFLAGS="$CFLAGS -Woverlength-strings"
   fi
   fi
 
 
   if test "x$have_gcc47" = "xyes"; then
   if test "x$have_gcc47" = "xyes"; then

+ 8 - 0
src/test/test_dir_handle_get.c

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

+ 8 - 0
src/test/test_helpers.c

@@ -16,7 +16,15 @@
 #include "test.h"
 #include "test.h"
 #include "test_helpers.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"
 #include "test_descriptors.inc"
+#if GCC_VERSION >= 406
+ENABLE_GCC_WARNING(overlength-strings)
+#endif
 
 
 /* Return a statically allocated string representing yesterday's date
 /* Return a statically allocated string representing yesterday's date
  * in ISO format. We use it so that state file items are not found to
  * 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);
   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
 /* Taken at random from my ~/.tor/cached-microdescs file and then
  * hand-munged */
  * hand-munged */
 static const char MD_PARSE_TEST_DATA[] =
 static const char MD_PARSE_TEST_DATA[] =
@@ -645,6 +650,9 @@ static const char MD_PARSE_TEST_DATA[] =
   "id rsa1024 2A8wYpHxnkKJ92orocvIQBzeHlE\n"
   "id rsa1024 2A8wYpHxnkKJ92orocvIQBzeHlE\n"
   "p6 allow 80\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
 /** More tests for parsing different kinds of microdescriptors, and getting
  * invalid digests trackd from them. */
  * invalid digests trackd from them. */