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.