From: David Kastrup Date: Sun, 04 May 2014 09:43:20 GMT Subject: Re: [PATCH 1/9] Define a structure for object IDs. Message-ID: <878uqhvpzb.fsf@fencepost.gnu.org> In-Reply-To: <536606AB.1020803@kdbg.org> Johannes Sixt writes: > Am 04.05.2014 08:07, schrieb Michael Haggerty: >> On 05/03/2014 10:12 PM, brian m. carlson wrote: >>> Introduce a structure for object IDs. This allows us to obtain the benefits >>> of compile-time checking for misuse. The structure is expected to remain >>> the same size and have the same alignment requirements on all known >>> platforms, compared to the array of unsigned char. >> >> Please clarify whether you plan to rely on all platforms having "the >> same size and alignment constraints" for correctness, or whether that >> observation of the status quo is only meant to reassure us that this >> change won't cause memory to be wasted on padding. > > 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. Huh? How so? There is no warranty as far as I know that a structure with only a single member has the same size and alignment requirements as the single member would have. There is also no guarantee as far as I know that anything but element dereference is a valid means of converting access to a struct to access to a sole element. -- David Kastrup