struct my_data { float f[3]; }; This struct should be passed/returned via three single precision floating-point registers instead of via memory or integer registers when using the "-mabi=d64" option in accordance to the draft specs. (ref: http://gcc.gnu.org/ml/gcc-patches/2004-11/msg00673.html)
We think the bug might be introduced when the related code in rs6000.c was rewritten in revision 95723 on 2005-02-28. That can be traced back to GCC4.0.2 -- Summary: 64-bit Darwin ABI does not support array field Product: gcc Version: 4.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: cqfu at transmeta dot com GCC build triplet: i386-linux GCC host triplet: i386-linux GCC target triplet: powerpc64-linux http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30582