https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81273
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |WAITING Last reconfirmed| |2017-07-03 Ever confirmed|0 |1 --- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> --- Your testcase cannot be built. On GIMPLE ShowBug looks ok so the issue must be at RTL expansion. _NOTE_ that *(volatile uint32_t*) makes alignment guarantees to the access while your TimerRegisters struct is aligned at byte boundary only! I suppose you may want __attribute__((__packed__,aligned(alignof(uint32_t)))))?