https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89544
--- Comment #2 from Bernd Edlinger <bernd.edlinger at hotmail dot de> --- Dont know if it helps, but when I wrote my patch, I remember the reason why parameter which have an address taken is in use_register_for_decl returns false here: /* Honor addressability. */ if (TREE_ADDRESSABLE (decl)) return false; if that happens the value is copied to a new stack slot, if TREE_ADDRESSABLE is false things go wrong.