This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug c++/61082] [x86-64 Itanium ABI] g++ uses wrong return location for class with head padding


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

--- Comment #12 from David Greene <greened at obbligato dot org> ---
(In reply to H.J. Lu from comment #11)

> That is correct and Y is classified as INTEGER with 2 fields:
> NO_CLASS, INTEGER.  The question is how NO_CLASS should be handled.

Since the "Returning of Values" section of 3.2.3 doesn't talk about aggregate
members, I assume that the entire type classification (INTEGER in this case)
should be used.  That is the interpretation Intel seems to use.

The example given does talk about members so I can see how either
interpretation could be considered correct.

g++ appears to pass such an object in RDI only so it is at least consistent in
its pass/return processing.

Strangely, icc appears to pass Y in memory!


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]