On Mon, Feb 8, 2016 at 7:59 AM, Jonathan Wakely <jwakely....@gmail.com> wrote: > On 8 February 2016 at 15:42, H.J. Lu <hjl.to...@gmail.com> wrote: >> On Mon, Feb 8, 2016 at 7:02 AM, Jonathan Wakely <jwakely....@gmail.com> >> wrote: >>> On 8 February 2016 at 13:54, H.J. Lu <hjl.to...@gmail.com> wrote: >>>> On Sun, Feb 7, 2016 at 12:52 PM, H.J. Lu <hjl.to...@gmail.com> wrote: >>>> >>>> The standard-layout POD is well defined: >>>> >>>> https://en.wikipedia.org/wiki/C%2B%2B11#Modification_to_the_definition_of_plain_old_data >>>> >>>> Here is the updated proposal for Intel386, x86-64 and IA MCU psABIs: >>>> >>>> 1. "collection". A collection is a structure, union or C++ class. >>> >>> These are all "class types". Why invent a new term? >> >> Because it applies to both C and C++. There is no class in C. > > Then you could use the term "class type" in the ABI, defining it to > mean structure or union in C, or class type in C++. No need for a new > term.
I will do it. > >>>> 2. "empty collection". An empty collection is: >>>> a. A collection without member. Or >>> >>> What about base classes? >>> >>> What about bit-fields of length 0? >> >> Is a collection with them standard-layout POD type? > > (I'm not sure what the "bit-fields of length 0" part is for, but my > point is it would be useful to examine similar concepts in the > standard and align with them, not just make up entirely new > classifications.) I am replying on C++ compiler to tell if it is standard-layout or not. > For base classes, yes. A standard-layout class can have base classes > of standard-layout type. > > struct A { }; > struct B { }; > struct C : A, B { }; > > C is a standard-layout type. Is it an empty collection? My understanding is A type that is standard-layout means that it orders and packs its members in a way that is compatible with C. What is the corresponding compatible type in C? >>>> b. A collection with only empty collections. Or >>> >>> What does "with" mean? Only members, or bases too? >> >> Is "A collection with only members of empty collections" better? > > Should it mention base classes? It depends on the answer of my question above. > >>>> c. An array of empty collections. >>>> 3. "empty record". An empty record is Plain Old Data (POD) for the purpose >>>> of standard-layout and >>> >>> "For the purposes of standard-layout" doesn't mean anything. >>> >>> A type is a standard-layout type, or it isn't. >> >> How about "An empty record is standard-layout Plain Old Data (POD) >> type and ..."? > > That's redundant, all POD types are standard-layout types. > I will update it. Thanks. -- H.J. _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits