------- Comment #134 from rguenth at gcc dot gnu dot org 2007-05-23 19:54 ------- But using a union for type-punning is a gcc extension (and of course the extension is only for access through the union), so with strict C99/C++ semantics we can avoid reloading d[i-1] even if a and d were in the same union because the code would then be invalid. So the union case is a non-issue here (it was only used to make available enough properly aligned storage for the particular testcase).
-- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29286