Gnulib is incompatible with -Wunused-macros. Addtionally, cygwin 1.7.1 coupled with --enable-gcc-warnings tripped on:
grep.c: In function 'print_line_middle': grep.c:805: error: array subscript has type 'char' [-Wchar-subscripts] grep.c: In function 'main': grep.c:1833: error: 'optarg' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes] grep.c:1834: error: 'optind' redeclared without dllimport attribute after being referenced with dll linkage * configure.ac (GNULIB_WARN_FLAGS): Disable -Wunused-macros. * src/grep.c (print_line_middle): Use correct type to tolower. (main): Drop useless redeclarations. * .gitignore: Ignore more built files. Signed-off-by: Eric Blake <[email protected]> --- I tested with CVS cygwin (the soon-to-be-released 1.7.2, which has better locale support than 1.7.1). My copyright assignment isn't in yet, but this should count as trivial. The testsuite is still running, but only because this patch let build run to completion. I'm seeing test failures on at least case-fold-char-range, and wonder whether it might have something to do with the fact that on cygwin, sizeof(wchar_t)==2, so full Unicode support requires surrogate handling. Or cygwin itself could still have some bugs with wide char handling. .gitignore | 3 +++ configure.ac | 2 +- src/grep.c | 4 +--- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 32f9208..435321a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,8 +1,10 @@ +!/gnulib-tests/Makefile.am !/lib/Makefile.am !/lib/savedir.c !/lib/savedir.h !/m4/djgpp.m4 *.a +*.exe *.o *~ .deps @@ -19,6 +21,7 @@ /config.status /configure /configure.ac +/gnulib-tests/* /lib/* /lib/charset.alias /lib/configmake.h diff --git a/configure.ac b/configure.ac index 50fcf5c..85f1563 100644 --- a/configure.ac +++ b/configure.ac @@ -130,7 +130,7 @@ if test "$gl_gcc_warnings" = yes; then # Remove the following and save the result in GNULIB_WARN_CFLAGS. nw= #nw="$nw -Wuninitialized" - #nw="$nw -Wunused-macros" + nw="$nw -Wunused-macros" #nw="$nw -Wmissing-prototypes" nw="$nw -Wold-style-definition" gl_MANYWARN_COMPLEMENT([GNULIB_WARN_CFLAGS], [$WARN_CFLAGS], [$nw]) diff --git a/src/grep.c b/src/grep.c index 8193bc5..f4cd875 100644 --- a/src/grep.c +++ b/src/grep.c @@ -802,7 +802,7 @@ print_line_middle (const char *beg, const char *lim, /* This can't possibly be correct with UTF-8, but it's equivalent to what was there so far. */ while (--i >= 0) - buf[i] = tolower(beg[i]); + buf[i] = tolower((unsigned char) beg[i]); } else { @@ -1830,8 +1830,6 @@ main (int argc, char **argv) int opt, cc, status; int default_context; FILE *fp; - extern char *optarg; - extern int optind; initialize_main (&argc, &argv); set_program_name (argv[0]); -- 1.6.6.1
