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

Re: [PATCH] block-sha1/sha1.c: silence compiler complaints by casting void* to uintptr_t

From
Linus Torvalds <torvalds@linux-foundation.org>
Date
Aug 15, 2009, 00:19 UTC
Message-ID
<alpine.LFD.2.01.0908141714040.3162@localhost.localdomain>
In-Reply-To
<alpine.DEB.1.00.0908150207270.8306@pacific.mpi-cbg.de>
On Sat, 15 Aug 2009, Johannes Schindelin wrote:
> 
> I am confused.  Is sizeof(*(uintptr_t)NULL) not larger than 1

You can't do that. "uintptr_t" isn't actually a pointer. It's just a unsigned integer value large enough to contain a pointer.

So it's _not_ a "pointer to uint". It's "uint that can contain all the bits of a poitner".

> and as a consequence ((uintptr_t)p)+1 not different from ((void *)p)+1?
No, they're the same.

That said, I suspect it might as well be cast to "const char *", and then hopefully you only need one cast.

So maybe it could be written as
	data = (const char *) data + len;

instead, and avoid the second cast (because the assignment should be ok, since it's assigning back to a "const void *").

		Linus
Previous: Johannes SchindelinNext: Brandon Casey
Message 9 of 15 in “block-sha1: more good unaligned memory access candidates”
  1. block-sha1: more good unaligned memory access candidatesNicolas Pitre, Aug 13, 2009
  2. Linus TorvaldsAug 13, 2009
  3. Nicolas PitreAug 13, 2009
  4. Junio C HamanoAug 13, 2009
  5. Linus TorvaldsAug 13, 2009
  6. Nicolas PitreAug 13, 2009
  7. block-sha1/sha1.c: silence compiler complaints by casting void* to uintptr_tBrandon Casey, Aug 14, 2009
  8. Johannes SchindelinAug 15, 2009
  9. Linus TorvaldsAug 15, 2009
  10. Brandon CaseyAug 15, 2009
  11. Junio C HamanoAug 15, 2009
  12. Brandon CaseyAug 15, 2009
  13. Junio C HamanoAug 15, 2009
  14. Linus TorvaldsAug 15, 2009
  15. Brandon CaseyAug 15, 2009

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.