https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65408
--- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> --- Note that code quality is an issue here as well. Cases to consider are struct test obj; void foo() { func (obj); } and void foo() { struct test obj; func (obj); } and void foo (struct test obj) { func (obj); } where we might (or might not) be sure that there is at least one 'int' mapped after 'obj' (not for the global var case at least - but I'm less sure about the other two cases (red zone? return address?))