On April 6, 2017 7:39:14 PM GMT+02:00, Bernd Edlinger <bernd.edlin...@hotmail.de> wrote: >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.
Why? Richard. >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