On Dec 29, 2005, at 12:16 PM, Gabriel Dos Reis wrote:
| > I guess we just have to wait till GCC is miscompiled (probably by
| > itself) to see whether the Middle End would cite chapter and
verse :-)
I suspect that humor does not travel well through emails :-) Sorry.
As my 4 year old would say, that's not funny. :-)
I was under the impression that we got some core language issues
For our purposes, the issue was decided and resolved. We welcome
dissenters to take the issue up with the C committee and see if they
want to clarify the language standard in the way that is yet more
restrictive than what gcc currently does, if they did, then we can
decide if we want to take advantage of the latitude granted by the
language standard.
Another interesting issue would be:
struct S {
int i;
float j;
} s;
*(float *)((char*)&s + 4);
on a platform that generated the program by printf("%d", offsetof(s,
j)) to get the 4. My take, it is valid. Reasonably, I can see
people say, but I want the optimizer to be able to notice that field
j isn't used, and optimize it out. I'd counter with, the optimizer
knows that j is at offset 4, and it can see the +4 and `know' the
field is used. I would love to see the language in the standard that
makes this perfectly clear, one way, or the other.