tahonermann requested changes to this revision.
tahonermann added inline comments.
This revision now requires changes to proceed.


================
Comment at: clang/include/clang/Sema/Sema.h:1786
     SemaDiagnosticBuilder(SemaDiagnosticBuilder &&D);
+    SemaDiagnosticBuilder &operator=(SemaDiagnosticBuilder &&D);
     SemaDiagnosticBuilder(const SemaDiagnosticBuilder &) = default;
----------------
Manna wrote:
> tahonermann wrote:
> > Since this class declares a move constructor, the declaration of the 
> > implicit move assignment operator is inhibited and the implicitly declared 
> > assignment operator is defined as deleted. This change declares a move 
> > assignment operator but doesn't define it (perhaps `= delete` was 
> > intended?). If support for assignment is not desired, then I think a 
> > declaration of a deleted copy assignment operator is all that is needed 
> > (matching the change made for `Strategy` below). Otherwise, I think a 
> > defaulted copy assignment operator should be declared and a move assignment 
> > operator should be defined that implements the same behavior as the move 
> > constructor.
> Thanks @tahonermann for the comments. 
> 
> >> think a defaulted copy assignment operator should be declared and a move 
> >> assignment operator should be defined that implements the same behavior as 
> >> the move constructor.
> 
> I have updated patch based on further analysis and my understanding. This 
> seems reasonable to me.
This change still declares a move assignment operator, but doesn't provide a 
definition. The move constructor is implemented in `clang/lib/Sema/Sema.cpp`, 
so I would expect to see the move assignment operator definition provided there 
as well.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D149718/new/

https://reviews.llvm.org/D149718

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to