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

Re: [PATCH 1/9] Define a structure for object IDs.

From
Johannes Sixt <j6t@kdbg.org>
Date
May 4, 2014, 20:18 UTC
Message-ID
<5366A09E.6030802@kdbg.org>
In-Reply-To
<m2mwexke34.fsf@linux-m68k.org>
Am 04.05.2014 12:55, schrieb Andreas Schwab:
Show 9 quoted lines
> Johannes Sixt <j6t@kdbg.org> writes:
> 
>> I think that a compiler that has different size and alignment requirements
>> for the proposed struct object_id and an unsigned char[20] would, strictly
>> speaking, not be a "C" compiler.
> 
> Unlike arrays, a struct can have arbitrary internal padding.  It is
> perfectly compliant (and even reasonable) to make struct object_id
> require 8 byte alignment, adding 4 bytes of padding at the end.

Isn't internal padding only allowed between members to achieve correct alignment of later members, and at the end only sufficient padding so that members are aligned correctly when the struct is part of an array? The former would not be the case because there is only one member, and the latter is not the case because a char or array of char does not have alignment requirement?

-- Hannes
Previous: Andreas SchwabNext: Andreas Schwab
Message 7 of 39 in “Use a structure for object IDs.”
  1. 0/9 Use a structure for object IDs.brian m. carlson, May 3, 2014
  2. 1/9 Define a structure for object IDs.brian m. carlson, May 3, 2014
  3. Michael HaggertyMay 4, 2014
  4. Johannes SixtMay 4, 2014
  5. David KastrupMay 4, 2014
  6. Andreas SchwabMay 4, 2014
  7. Johannes SixtMay 4, 2014
  8. Andreas SchwabMay 4, 2014
  9. David KastrupMay 5, 2014
  10. Andreas SchwabMay 5, 2014
  11. James DenholmMay 5, 2014
  12. David KastrupMay 5, 2014
  13. Michael HaggertyMay 5, 2014
  14. Andreas SchwabMay 5, 2014
  15. David KastrupMay 5, 2014
  16. Felipe ContrerasMay 5, 2014
  17. Duy NguyenMay 4, 2014
  18. brian m. carlsonMay 4, 2014
  19. Andreas SchwabMay 4, 2014
  20. David KastrupMay 4, 2014
  21. Andreas SchwabMay 4, 2014
  22. David KastrupMay 4, 2014
  23. Andreas SchwabMay 4, 2014
  24. 2/9 bisect.c: convert to use struct object_idbrian m. carlson, May 3, 2014
  25. 3/9 archive.c: convert to use struct object_idbrian m. carlson, May 3, 2014
  26. 4/9 zip: use GIT_OID_HEXSZ for trailersbrian m. carlson, May 3, 2014
  27. 5/9 branch.c: convert to use struct object_idbrian m. carlson, May 3, 2014
  28. 6/9 bulk-checkin.c: convert to use struct object_idbrian m. carlson, May 3, 2014
  29. 7/9 bundle.c: convert leaf functions to struct object_idbrian m. carlson, May 3, 2014
  30. Michael HaggertyMay 6, 2014
  31. 8/9 cache-tree: convert struct cache_tree to use object_idbrian m. carlson, May 3, 2014
  32. Michael HaggertyMay 6, 2014
  33. Michael HaggertyMay 6, 2014
  34. 9/9 diff: convert struct combine_diff_path to object_idbrian m. carlson, May 3, 2014
  35. Michael HaggertyMay 6, 2014
  36. brian m. carlsonMay 3, 2014
  37. Michael HaggertyMay 4, 2014
  38. Johannes SixtMay 4, 2014
  39. brian m. carlsonMay 4, 2014

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.