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

Reply via email to