http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56405
--- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> 2013-02-20 09:42:51 UTC --- Created attachment 29507 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=29507 gcc48-pr56405.patch One possible fix, just handle EXPAND_MEMORY (which apparently is solely used for inline asm inputs which allow memory, but disallow registers) the same as EXPAND_WRITE, if it works, fine, if it doesn't work, it is inline asm writer's bug. In this particular case we know the pointer is definitely misaligned, but in other cases we could just expect it to be misaligned, yet it could actually be aligned e.g. if a base is some pointer.