Merge branch 'rj/sparse'
authorJunio C Hamano <gitster@pobox.com>
Wed, 29 May 2013 21:24:02 +0000 (14:24 -0700)
committerJunio C Hamano <gitster@pobox.com>
Wed, 29 May 2013 21:24:02 +0000 (14:24 -0700)
* rj/sparse:
sparse: Fix mingw_main() argument number/type errors
compat/mingw.c: Fix some sparse warnings
compat/win32mmap.c: Fix some sparse warnings
compat/poll/poll.c: Fix a sparse warning
compat/win32/pthread.c: Fix a sparse warning
compat/unsetenv.c: Fix a sparse warning
compat/nedmalloc: Fix compiler warnings on linux
compat/nedmalloc: Fix some sparse warnings
compat/fnmatch/fnmatch.c: Fix a sparse error
compat/regex/regexec.c: Fix some sparse warnings

20 files changed:
Makefile
compat/fnmatch/fnmatch.c
compat/mingw.c
compat/mingw.h
compat/nedmalloc/malloc.c.h
compat/nedmalloc/nedmalloc.c
compat/poll/poll.c
compat/regex/regexec.c
compat/unsetenv.c
compat/win32/pthread.c
compat/win32mmap.c
credential-store.c
fast-import.c
git.c
remote-testsvn.c
test-chmtime.c
test-index-version.c
test-mergesort.c
test-parse-options.c
test-subprocess.c
index 77f3f117c4ae8bf24cbd40758874b5c4d03141d5..7e44b67599daeae05526ea0d876233b7014cbc83 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -2003,6 +2003,7 @@ endif
 ifdef USE_NED_ALLOCATOR
 compat/nedmalloc/nedmalloc.sp compat/nedmalloc/nedmalloc.o: EXTRA_CPPFLAGS = \
        -DNDEBUG -DOVERRIDE_STRDUP -DREPLACE_SYSTEM_ALLOCATOR
+compat/nedmalloc/nedmalloc.sp: SPARSE_FLAGS += -Wno-non-pointer-null
 endif
 
 git-%$X: %.o GIT-LDFLAGS $(GITLIBS)
index 5ef0685135662e3cefc80eed5c5ae030fe1a5d49..378c467401ea156cb189313bd75f3c28406277c0 100644 (file)
@@ -25,6 +25,7 @@
 # define _GNU_SOURCE   1
 #endif
 
+#include <stddef.h>
 #include <errno.h>
 #include <fnmatch.h>
 #include <ctype.h>
    whose names are inconsistent.  */
 
 # if !defined _LIBC && !defined getenv
-extern char *getenv ();
+extern char *getenv (const char *name);
 # endif
 
 # ifndef errno
index b67362558046f354b167fe185369b3d2b98879c1..b295e2f6a9faf25927ab6e69ccaf1c2d6a86c420 100644 (file)
@@ -841,8 +841,8 @@ struct pinfo_t {
        struct pinfo_t *next;
        pid_t pid;
        HANDLE proc;
-} pinfo_t;
-struct pinfo_t *pinfo = NULL;
+};
+static struct pinfo_t *pinfo = NULL;
 CRITICAL_SECTION pinfo_cs;
 
 static pid_t mingw_spawnve_fd(const char *cmd, const char **argv, char **env,
@@ -1253,7 +1253,7 @@ static int WSAAPI getaddrinfo_stub(const char *node, const char *service,
        else
                sin->sin_addr.s_addr = INADDR_LOOPBACK;
        ai->ai_addr = (struct sockaddr *)sin;
-       ai->ai_next = 0;
+       ai->ai_next = NULL;
        return 0;
 }
 
index 685cd2c3d4746521e047782f9630763044e42809..bd0a88bc1d19583b7dfed36fd8f7a7af7f386296 100644 (file)
@@ -333,14 +333,21 @@ void mingw_open_html(const char *path);
 char **make_augmented_environ(const char *const *vars);
 void free_environ(char **env);
 
+/*
+ * A critical section used in the implementation of the spawn
+ * functions (mingw_spawnv[p]e()) and waitpid(). Intialised in
+ * the replacement main() macro below.
+ */
+extern CRITICAL_SECTION pinfo_cs;
+
 /*
  * A replacement of main() that ensures that argv[0] has a path
  * and that default fmode and std(in|out|err) are in binary mode
  */
 
 #define main(c,v) dummy_decl_mingw_main(); \
-static int mingw_main(); \
-int main(int argc, const char **argv) \
+static int mingw_main(c,v); \
+int main(int argc, char **argv) \
 { \
        extern CRITICAL_SECTION pinfo_cs; \
        _fmode = _O_BINARY; \
index 1401a6727414480e181023f8de974bad76a04d24..5a44dead9dd51cbf194d14f7f367844f780298d0 100644 (file)
@@ -484,6 +484,10 @@ MAX_RELEASE_CHECK_RATE   default: 4095 unless not HAVE_MMAP
 #define DLMALLOC_VERSION 20804
 #endif /* DLMALLOC_VERSION */
 
+#if defined(linux)
+#define _GNU_SOURCE 1
+#endif
+
 #ifndef WIN32
 #ifdef _WIN32
 #define WIN32 1
@@ -1802,7 +1806,7 @@ struct win32_mlock_t
 
 static MLOCK_T malloc_global_mutex = { 0, 0, 0};
 
-static FORCEINLINE long win32_getcurrentthreadid() {
+static FORCEINLINE long win32_getcurrentthreadid(void) {
 #ifdef _MSC_VER
 #if defined(_M_IX86)
   long *threadstruct=(long *)__readfsdword(0x18);
index 91c4e7f27b4063c7ceffeeb1cd43530ce18cf096..609ebba1258eac47983f2b9da5d582a5d5af5482 100644 (file)
@@ -159,8 +159,8 @@ struct mallinfo nedmallinfo(void) THROWSPEC                 { return nedpmallinfo(0); }
 #endif
 int    nedmallopt(int parno, int value) THROWSPEC      { return nedpmallopt(0, parno, value); }
 int    nedmalloc_trim(size_t pad) THROWSPEC                    { return nedpmalloc_trim(0, pad); }
-void   nedmalloc_stats() THROWSPEC                                     { nedpmalloc_stats(0); }
-size_t nedmalloc_footprint() THROWSPEC                         { return nedpmalloc_footprint(0); }
+void   nedmalloc_stats(void) THROWSPEC                                 { nedpmalloc_stats(0); }
+size_t nedmalloc_footprint(void) THROWSPEC                             { return nedpmalloc_footprint(0); }
 void **nedindependent_calloc(size_t elemsno, size_t elemsize, void **chunks) THROWSPEC { return nedpindependent_calloc(0, elemsno, elemsize, chunks); }
 void **nedindependent_comalloc(size_t elems, size_t *sizes, void **chunks) THROWSPEC   { return nedpindependent_comalloc(0, elems, sizes, chunks); }
 
index 7d226ecb293ee3c5f9b17aa3e5e36b7c8701dbae..44103103a4a71ff25e5e8e1d106221a9dd2e9908 100644 (file)
@@ -576,7 +576,7 @@ poll (struct pollfd *pfd, nfds_t nfd, int timeout)
        {
          /* It's a socket.  */
          WSAEnumNetworkEvents ((SOCKET) h, NULL, &ev);
-         WSAEventSelect ((SOCKET) h, 0, 0);
+         WSAEventSelect ((SOCKET) h, NULL, 0);
 
          /* If we're lucky, WSAEnumNetworkEvents already provided a way
             to distinguish FD_READ and FD_ACCEPT; this saves a recv later.  */
index 0194965c5d255a914de814f3e623698932f8a917..0cd6e0ef98ae1f53a8a32e448064bfbf5d1c29dc 100644 (file)
@@ -2313,7 +2313,7 @@ transit_state (reg_errcode_t *err, re_match_context_t *mctx,
 }
 
 /* Update the state_log if we need */
-re_dfastate_t *
+static re_dfastate_t *
 internal_function
 merge_state_with_log (reg_errcode_t *err, re_match_context_t *mctx,
                      re_dfastate_t *next_state)
@@ -2326,7 +2326,7 @@ merge_state_with_log (reg_errcode_t *err, re_match_context_t *mctx,
       mctx->state_log[cur_idx] = next_state;
       mctx->state_log_top = cur_idx;
     }
-  else if (mctx->state_log[cur_idx] == 0)
+  else if (mctx->state_log[cur_idx] == NULL)
     {
       mctx->state_log[cur_idx] = next_state;
     }
@@ -2392,7 +2392,7 @@ merge_state_with_log (reg_errcode_t *err, re_match_context_t *mctx,
 /* Skip bytes in the input that correspond to part of a
    multi-byte match, then look in the log for a state
    from which to restart matching.  */
-re_dfastate_t *
+static re_dfastate_t *
 internal_function
 find_recover_state (reg_errcode_t *err, re_match_context_t *mctx)
 {
index eb29f5e0849370afe90c400271fea12e0f9090aa..4ea18569c240900b0e889873ddc782614c7724a6 100644 (file)
@@ -2,7 +2,6 @@
 
 void gitunsetenv (const char *name)
 {
-     extern char **environ;
      int src, dst;
      size_t nmln;
 
index 010e875ec4dd8d7154a0911661570165ac1ae874..e18f5c6e2e55a4b42f178e3042301cd77a654d80 100644 (file)
@@ -52,7 +52,7 @@ int win32_pthread_join(pthread_t *thread, void **value_ptr)
 
 pthread_t pthread_self(void)
 {
-       pthread_t t = { 0 };
+       pthread_t t = { NULL };
        t.tid = GetCurrentThreadId();
        return t;
 }
index 61d2ef8e46084ef14ea22690a68c6c99e2644455..80a8c9af4f0ddcc883370fe05781337cef0d5ef0 100644 (file)
@@ -21,8 +21,8 @@ void *git_mmap(void *start, size_t length, int prot, int flags, int fd, off_t of
        if (!(flags & MAP_PRIVATE))
                die("Invalid usage of mmap when built with USE_WIN32_MMAP");
 
-       hmap = CreateFileMapping((HANDLE)_get_osfhandle(fd), 0, PAGE_WRITECOPY,
-               0, 0, 0);
+       hmap = CreateFileMapping((HANDLE)_get_osfhandle(fd), NULL,
+               PAGE_WRITECOPY, 0, 0, NULL);
 
        if (!hmap)
                return MAP_FAILED;
index 26f7589a60b882251b1e601433a6d8be4ddfe794..f9146e576f82cd774f697420e2bb456f56ad65dd 100644 (file)
@@ -114,7 +114,7 @@ static int lookup_credential(const char *fn, struct credential *c)
        return c->username && c->password;
 }
 
-int main(int argc, const char **argv)
+int main(int argc, char **argv)
 {
        const char * const usage[] = {
                "git credential-store [options] <action>",
@@ -131,7 +131,7 @@ int main(int argc, const char **argv)
 
        umask(077);
 
-       argc = parse_options(argc, argv, NULL, options, usage, 0);
+       argc = parse_options(argc, (const char **)argv, NULL, options, usage, 0);
        if (argc != 1)
                usage_with_options(usage, options);
        op = argv[0];
index 5f539d7d8f7e087423734fb1d19e0d5e580fbe6e..6d9445302614318c0322fdb2fc403aa22cd79804 100644 (file)
@@ -297,7 +297,7 @@ static int failure;
 static FILE *pack_edges;
 static unsigned int show_stats = 1;
 static int global_argc;
-static const char **global_argv;
+static char **global_argv;
 
 /* Memory pools */
 static size_t mem_pool_alloc = 2*1024*1024 - sizeof(struct mem_pool);
@@ -3347,7 +3347,7 @@ static void parse_argv(void)
                read_marks();
 }
 
-int main(int argc, const char **argv)
+int main(int argc, char **argv)
 {
        unsigned int i;
 
diff --git a/git.c b/git.c
index 1ada169d5cff3051effee33c6f9ba5b9be15b2e6..7dd07aae7a13aca1c910d6f126495e8280d00a71 100644 (file)
--- a/git.c
+++ b/git.c
@@ -507,8 +507,9 @@ static int run_argv(int *argcp, const char ***argv)
 }
 
 
-int main(int argc, const char **argv)
+int main(int argc, char **av)
 {
+       const char **argv = (const char **) av;
        const char *cmd;
 
        startup_info = &git_startup_info;
index 5ddf11cc61e22e39f28b3cbe0dbd1075c0881556..d7cd5d272fd23624223f37ec8bda7d4fa8c39bce 100644 (file)
@@ -286,7 +286,7 @@ static int do_command(struct strbuf *line)
        return 0;
 }
 
-int main(int argc, const char **argv)
+int main(int argc, char **argv)
 {
        struct strbuf buf = STRBUF_INIT, url_sb = STRBUF_INIT,
                        private_ref_sb = STRBUF_INIT, marksfilename_sb = STRBUF_INIT,
index 02b42badd550a4b775aab084b38a63c2f4f561a9..94903c4bff1ea7fa8818032b5fd310c98007eee3 100644 (file)
@@ -56,7 +56,7 @@ static int timespec_arg(const char *arg, long int *set_time, int *set_eq)
        return 1;
 }
 
-int main(int argc, const char *argv[])
+int main(int argc, char *argv[])
 {
        static int verbose;
 
index bfaad9e09e63a3f9e0d0d3575cce32859382398c..05d4699c4a6cf32b2b6291e275dafa2744fe19d6 100644 (file)
@@ -1,6 +1,6 @@
 #include "cache.h"
 
-int main(int argc, const char **argv)
+int main(int argc, char **argv)
 {
        struct cache_header hdr;
        int version;
index 3f388b4ce0bde90ff5593b42948338d5b73e8da9..ea3b959e94ff6f53726d4fce955bca1181a3be07 100644 (file)
@@ -22,7 +22,7 @@ static int compare_strings(const void *a, const void *b)
        return strcmp(x->text, y->text);
 }
 
-int main(int argc, const char **argv)
+int main(int argc, char **argv)
 {
        struct line *line, *p = NULL, *lines = NULL;
        struct strbuf sb = STRBUF_INIT;
index 3c9510a70107eed584916d61707002390d7d246a..434e8b892981e3b052437d1c7eb2668a70cf2dfa 100644 (file)
@@ -29,7 +29,7 @@ static int number_callback(const struct option *opt, const char *arg, int unset)
        return 0;
 }
 
-int main(int argc, const char **argv)
+int main(int argc, char **argv)
 {
        const char *prefix = "prefix/";
        const char *usage[] = {
@@ -81,7 +81,7 @@ int main(int argc, const char **argv)
        };
        int i;
 
-       argc = parse_options(argc, argv, prefix, options, usage, 0);
+       argc = parse_options(argc, (const char **)argv, prefix, options, usage, 0);
 
        printf("boolean: %d\n", boolean);
        printf("integer: %u\n", integer);
index f2d4c0d22bd418836eb47424a03d0e903246d92e..93525eb7be48eb11c242200827a7f6f0706ee241 100644 (file)
@@ -1,7 +1,7 @@
 #include "cache.h"
 #include "run-command.h"
 
-int main(int argc, const char **argv)
+int main(int argc, char **argv)
 {
        struct child_process cp;
        int nogit = 0;
@@ -15,6 +15,6 @@ int main(int argc, const char **argv)
        }
        memset(&cp, 0, sizeof(cp));
        cp.git_cmd = 1;
-       cp.argv = argv + 1;
+       cp.argv = (const char **)argv + 1;
        return run_command(&cp);
 }