mingw: declare main()'s argv as const
authorJohannes Schindelin <johannes.schindelin@gmx.de>
Fri, 1 Jul 2016 13:01:28 +0000 (15:01 +0200)
committerJunio C Hamano <gitster@pobox.com>
Wed, 6 Jul 2016 15:11:47 +0000 (08:11 -0700)
In 84d32bf (sparse: Fix mingw_main() argument number/type errors,
2013-04-27), we addressed problems identified by the 'sparse' tool where
argv was declared inconsistently. The way we addressed it was by casting
from the non-const version to the const-version.

This patch is long overdue, fixing compat/mingw.h's declaration to
make the "argv" parameter const. This also allows us to lose the
"const" trickery introduced earlier to common-main.c:main().

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
common-main.c
compat/mingw.h
index 3be5ad18e1d07fe9dad4b2d9df37a619bd175a33..44a29e8b13cb5203e2d35c99b8e2b5fec49f6981 100644 (file)
@@ -22,14 +22,8 @@ static void restore_sigpipe_to_default(void)
        signal(SIGPIPE, SIG_DFL);
 }
 
-int main(int argc, char **av)
+int main(int argc, const char **argv)
 {
-       /*
-        * This const trickery is explained in
-        * 84d32bf7678259c08406571cd6ce4b7a6724dcba
-        */
-       const char **argv = (const char **)av;
-
        /*
         * Always open file descriptors 0/1/2 to avoid clobbering files
         * in die().  It also avoids messing up when the pipes are dup'ed
index 69bb43dc35d4c28724f007d9684715ec40421542..1ac9086a8275341a1a9a66338cc196d6782e7371 100644 (file)
@@ -535,7 +535,7 @@ extern CRITICAL_SECTION pinfo_cs;
 void mingw_startup();
 #define main(c,v) dummy_decl_mingw_main(); \
 static int mingw_main(c,v); \
-int main(int argc, char **argv) \
+int main(int argc, const char **argv) \
 { \
        mingw_startup(); \
        return mingw_main(__argc, (void *)__argv); \