* Paul Koning: >> On Mar 28, 2016, at 8:11 AM, Florian Weimer <f...@deneb.enyo.de> wrote: >> >> ... >> The problem is that “reading” is either not defined, or the existing >> flatly contradicts existing practice. >> >> For example, if p is a pointer to a struct, will the expression &p->m >> read *p? > > Presumably the offset of m is substantially larger than 0? If so, my > answer would be "it had better not". Does any compiler treat that > statement as an access to *p ?
As I tried to explain, GCC does, for aliasing purposes. For the expression p->m, there is an implicit read of *p, asserting that the static and dynamic types match.