http://gcc.gnu.org/bugzilla/show_bug.cgi?id=61082

--- Comment #14 from H.J. Lu <hjl.tools at gmail dot com> ---
(In reply to David Greene from comment #13)
> I see that 3.2.3 4 (b) is talking about considering adjacent fields in an
> eightbyte.  Is the intent to classify each eightbyte in an aggregate and
> then consider each eightbyte separately for assigning argument and return
> registers?

That is correct.

> The post-merger cleanup described in 5 appears to handle passing in memory
> in that it considers all of the fields in the aggregate together.
> 
> Given the above, if a field crosses an eightbyte either it is larger than an
> eightbyte either it is unaligned which forces the whole argument to memory
> or its eightbytes are classified separately in a recursive manner.
> 
> Does this sound correct?  If so, I think gcc is correct in what it's doing.

I think GCC is correct.

Reply via email to