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

--- Comment #13 from David Greene <greened at obbligato dot org> ---
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?

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.

Reply via email to