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

Re: [PATCH] Use explicit pointers for execl...() sentinels.

From
MWMark Wooding <mdw@distorted.org.uk>
Date
Mar 12, 2006, 17:32 UTC
Message-ID
<slrne18mq3.fr9.mdw@metalzone.distorted.org.uk>
In-Reply-To
<20060312171316.39d138f8.tihirvon@gmail.com>
Timo Hirvonen <tihirvon@gmail.com> wrote:
> NULL should always be ((void *)0).

Says who? I already gave chapter and verse for what NULL is required to do.

Besides, (void *)0 fixes /this particular/ problem, because `void *' and `char *' have the same representation (6.2.5#27). This wouldn't help us with a putative function which takes an arbitrary number of `foo *' pointers, since nothing guarantees that `void *' and `foo *' have similar representations. You'd have to say `(foo *)0' or `(foo *)NULL'.

> What 64-bit systems declare NULL as plain 0 (not 0L)?

Don't know: didn't look. 0L won't do the right thing with IL32LLP64, if anyone was actually crazy enough to specify such an ABI. The point is, there's not much

> How about fixing those systems instead of making the git source code
> unreadable.
Because, according to the C and POSIX specs, they're not wrong.

The right fix from the point of view of a C implementation would be to define NULL to be some weird __null_pointer token which the compiler could warn about whenever it was used in an untyped argument context.

(Besides, I don't find bare or casted `0' unreadable. Maybe I'm just strange.)

-- [mdw]
Previous: Timo HirvonenNext: Timo Hirvonen
Message 6 of 20 in “Trivial warning fix for imap-send.c”
  1. Trivial warning fix for imap-send.cArt Haas, Mar 11, 2006
  2. Mark WoodingMar 12, 2006
  3. Junio C HamanoMar 12, 2006
  4. Use explicit pointers for execl...() sentinels.Mark Wooding, Mar 12, 2006
  5. Timo HirvonenMar 12, 2006
  6. Mark WoodingMar 12, 2006
  7. Timo HirvonenMar 12, 2006
  8. Jeff KingMar 13, 2006
  9. Linus TorvaldsMar 12, 2006
  10. Mark WoodingMar 12, 2006
  11. A Large Angry SCMMar 12, 2006
  12. H. Peter AnvinMar 13, 2006
  13. A Large Angry SCMMar 13, 2006
  14. Linus TorvaldsMar 13, 2006
  15. H. Peter AnvinMar 13, 2006
  16. Linus TorvaldsMar 13, 2006
  17. Olivier GalibertMar 13, 2006
  18. Jeff KingMar 13, 2006
  19. H. Peter AnvinMar 13, 2006
  20. Linus TorvaldsMar 12, 2006

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.