Просмотр исходного кода

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 10 лет назад
Родитель
Сommit
4caed2424a
4 измененных файлов с 25 добавлено и 0 удалено
  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. */