git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 6/6] sparse: Fix mingw_main() argument number/type errors

From
Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Date
Apr 29, 2013, 21:52 UTC
Message-ID
<517EEBAD.3090201@ramsay1.demon.co.uk>
In-Reply-To
<517C6DEF.2050305@lsrfire.ath.cx>
René Scharfe wrote:
Show 10 quoted lines
> Am 27.04.2013 21:19, schrieb Ramsay Jones:
>> In order to suppress these warnings, since both of the main
>> functions need to be declared with the same prototype, we
>> change the declaration of the 9 main functions, thus:
>>
>>      int main(int argc, char **argv)
> 
> Why not take the opposite direction with a patch like this?  It's quick
> and dirty and based on v1.8.1.msysgit.1, as that was the version I had
> lying around here, but you get the idea.

The main reason (99%) was patch size. I only noticed a "recent trend" to declare the main() with a 'const char **argv' parameter because, over the years, I've had to keep adding to this patch. (Having said that, I suspect it has only been about four additions in four years).

The other 1% is simply that it just looks wrong! (yeah, this new 'const' thingamajig has it's uses, but still ... :-D ).

Just FYI, the C99 standard has this to say:
    c99 standard 5.1.2.2.1 "Program startup"
    The function called at program startup is named main. The
    implementation declares no prototype for this function. It
    shall be defined with a return type of int and with no
    parameters:
        int main(void) { /* ... */ }
    or with two parameters (referred to here as argc and argv,
    though any names may be used, as they are local to the
    function in which they are declared);
        int main(int argc, char *argv[]) { /* ... */ }
    or equivalent;^9 or in some other implementation-defined
    manner.
    [note 9: Thus, int can be replaced by a typedef name
    defined as int, or the type of argv can be written as
    char **argv, and so on.]
    ...
        - The parameters argc and argv and the strings pointed
        to by the argv array shall be modifiable by the program,
        and retain their last-stored values between program
        startup and program termination.

That "... or in some other implementation-defined manner." tends to make this text somewhat weak!

ATB, Ramsay Jones

Previous: Ramsay Jones
Message 6 of 6 in “sparse: Fix mingw_main() argument number/type errors”
  1. 6/6 sparse: Fix mingw_main() argument number/type errorsRamsay Jones, Apr 27, 2013
  2. René ScharfeApr 28, 2013
  3. Junio C HamanoApr 28, 2013
  4. René ScharfeApr 29, 2013
  5. Ramsay JonesApr 29, 2013
  6. Ramsay JonesApr 29, 2013

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.