http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52356
Bug #: 52356 Summary: expr.c:emit_move_multi_word() can overwrite address register Classification: Unclassified Product: gcc Version: 4.6.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: rtl-optimization AssignedTo: unassig...@gcc.gnu.org ReportedBy: j...@beniston.com expr.c:emit_move_multi_word() can copy multiple words from an address specified by y to a sequence of registers starting at x However, it seems this code doesn't check to make sure that the register used for holding the address y, isn't in the destination registers, or if it is, reorder the sequence of moves, so that the write to this register is the last move performed.