https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96882
--- Comment #8 from Richard Earnshaw <rearnsha at gcc dot gnu.org> --- (In reply to emilie.feral from comment #7) > Hello, > Any news on the subject? > Would you advise in the meantime to discard the LTO (with the -fno-lto > option) on the compilation unit containing the failing code? > The bug occurred for us when returning a structure of four doubles. Do you > have any indication of when the bug might appear to help us track other > occurrences? > Thanks for helping! Sorry, I haven't had time to work on this yet. The safest work-around for now is to add an additional attribute to force the PCS to the default for the selected ABI - I think adding pcs("aapcs-vfp") to the attributes will solve the problem. ie. AtLeast32BytesObject __attribute__((noinline, pcs("aapcs-vfp"))) CalledFunction() { AtLeast32BytesObject result = {1.1, 2.2, 3.3, 4.4}; return result; }