On 04/06/17 16:17, Florian Weimer wrote: >> Here is what I want to write in the doc: >> >> @item typeless_storage >> @cindex @code{typeless_storage} type attribute >> A type declared with this attribute behaves like a character type >> with respect to aliasing semantics. >> This is attribute is similar to the @code{may_alias} attribute, >> except that it is not restricted to pointers. > > As Jakub pointed out, this is not what we need here. An object of type > char does *not* have untyped storage. Accessing it as a different type > is still undefined. >
but, do you agree that this is valid in C11? typedef char char_a[4]; int main (void) { char_a a = {1,2,3,4}; short *b = (short *) &a; b[1] = 0; if (a[0] == 1 && a[1] == 2 && a[2] == 3 && a[3] == 4) abort(); exit(0); } all I want to do is replace "char" with a different type. Bernd. > The documentation says that the memory region is considered to by > untyped, like a memory region returned by malloc (but obviously not with > the implication that the memory region is separated from everything else). > > Thanks, > Florian