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
Brandon Casey <casey@nrlssc.navy.mil>
Date
Aug 15, 2009, 00:52 UTC
Message-ID
<qZXfoQ5Gp5jKnRfKM6ee07YVX-hyS2HsJmQwAYdPVHw92cOuUcufJA@cipher.nrlssc.navy.mil>
In-Reply-To
<alpine.DEB.1.00.0908150207270.8306@pacific.mpi-cbg.de>
Johannes Schindelin wrote:
Show 9 quoted lines
> Hi,
> 
> On Fri, 14 Aug 2009, Brandon Casey wrote:
> 
>> Some compilers produce errors when arithmetic is attempted on pointers to
>> void.  So cast to uintptr_t when performing arithmetic on void pointers.
> 
> I am confused.  Is sizeof(*(uintptr_t)NULL) not larger than 1, and as a 
> consequence ((uintptr_t)p)+1 not different from ((void *)p)+1?
If you try this:
   printf("NULL + 1: %u\n", (void*)NULL + 1);
the MIPSpro compiler complains like:
   The expression must be a pointer to a complete object type.
        printf("NULL + 1: %u\n", (void*)NULL + 1);
                                 ^
   1 error detected in the compilation of "test.c".

Compilers other than gcc at least issue a warning, if they do not also fail.

-brandon
Previous: Linus Torvalds
Message 15 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.