http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57359
--- Comment #5 from Dara Hazeghi <dhazeghi at yahoo dot com> ---
Sorry to ask again on this, but after re-reading, I'm not sure I understand the
type-punning argument here:
**ppll = ll; // write to u.ll
*k = 0; // write to u.i
j = *ppa; // u not touched
ia[0][0] = *j; // u not touched
printf("%d\n", u.i); // read from u.i
>From what I can tell, this is in fact reading the last member written to (so
not falling under the unspecified behaviors listed in annex J / 6.2.6.1).
Perhaps there is an additional restriction I am missing?