https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106977
--- Comment #16 from Iain Sandoe <iains at gcc dot gnu.org> --- (In reply to Iain Sandoe from comment #14) > (In reply to ibuclaw from comment #13) > If the caller is passing two regs it seems to me likely that (for some > reason it thinks that the value is returned via an sret pointer). > > The callee then get s the set pointer in the register it is expecting *this > to be in... and boom .. we are broken at some point, > > So it would seem that we might want to find a reproducer that we can look at > the various tree dumps and see if/where an sret is introduced? > > (if that's not the cause, then we'll have to find a new hypothesis) oops I misread the D callee asm .. it looks like the D callee is expecting an sret. So ISTM that somehow D is not getting the right answer to "does this ABI pass by sret for this size of struct"?