https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85616
--- Comment #3 from ktkachov at gcc dot gnu.org --- Though the example code given breaks C's strict aliasing rules, doesn't it? bug_start is an array of chars (byte-aligned) but the stores to it are done as ints, which expect word alignment, so this would be invoking undefined behaviour.