To avoid depending again on precise wording of definitions in C++ standard it may be worth being explicit about the requirement to be trivially copyable *and* destructible, since although the former implies the latter in the C++ standard this is not obvious from the terminology (although you also need the latter in all practical cases including the one being discussed).
The explanation I gave earlier ("it means an object can be copied simply by copying its bytes and destroyed simply by discarding its storage") can probably be polished into a language-agnostic definition. I think it is helpful in general when ABI standards can be extended to other languages with as much ease and unambiguity as possible, for the sake of interoperability. For similar reasons I would support "aggregate occupying zero bytes (excluding any padding)" with a footnote on the strange situation of C/C++ arrays, which cannot be directly passed by value even if the syntax may suggest they can (hence the rule being discussed is not applicable to them). Matthijs van Duin _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits