Quuxplusone added inline comments.
================ Comment at: include/clang/Basic/DiagnosticSemaKinds.td:2953 + "have bases of non-trivial class types|have virtual bases|" + "have __weak fields under ARC|have fields of non-trivial class types}0">; ---------------- ahatanak wrote: > Quuxplusone wrote: > > nit: "of non-trivial class types" should be "of non-trivial class type" in > > both places. > > > > And I would write "are not move-constructible" rather than "don't have > > non-deleted copy/move constructors". Double negations aren't non-bad. > > > > Actually I would rephrase this as `'trivial_abi' is disallowed on this > > class because it %select{is not move-constructible|is polymorphic|has a > > base of non-trivial class type|has a virtual base|has a __weak field|has a > > field of non-trivial class type}`, i.e., we're not just giving information > > about "classes" in general, we're talking about "this class" specifically. > > We could even name the class if we're feeling generous. > Does not being move-constructible imply that the class doesn't have a > *public* copy or move constructor that isn't deleted? If it does, that is > slightly different than saying the copy and move constructors of the class > are all deleted. When the users see the message "is not move-constructible", > they might think the copy or move constructor that isn't deleted has to be > public in order to annotate the class with `trivial_abi`. For `trivial_abi`, > a private one is good enough. > > I think your other suggestions are all good ideas. > Does not being move-constructible imply that the class doesn't have a > *public* copy or move constructor that isn't deleted? Yeah, I suppose so. Okay. Repository: rC Clang CHANGES SINCE LAST ACTION https://reviews.llvm.org/D57626/new/ https://reviews.llvm.org/D57626 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits