mizvekov added inline comments.

================
Comment at: clang/test/SemaCXX/coroutine-rvo.cpp:41-45
 struct MoveOnly {
-  MoveOnly() {};
+  MoveOnly() = default;
   MoveOnly(const MoveOnly&) = delete;
-  MoveOnly(MoveOnly&&) noexcept {};
-  ~MoveOnly() {};
+  MoveOnly(MoveOnly &&) = default;
+};
----------------
mizvekov wrote:
> Quuxplusone wrote:
> > This change makes `is_trivial_v<MoveOnly>` true, where before it was false.
> > I don't know whether this matters to the coroutine machinery. Ideally, 
> > @aaronpuchert would weigh in; I don't know, and am just raising the issue 
> > because it struck my attention.
> > 
> > (If it //does// matter, then maybe we even want to add test coverage for 
> > //both// the move-only-trivial case and the move-only-nontrivial case.)
> So these are the changes I picked from D68845.
> 
> You were a reviewer, and you did not raise an objection there :)
> 
> Though that is perfectly fine, that was a couple of years back and our 
> perceptions just change I guess.
> 
> Though once I have P2266 implementation rebased on top of this, I can see if 
> this change still makes sense in our context, but I'd also like for 
> @aaronpuchert to weight on this.
I think I see why this change was made. Both in @aaronpuchert 's patch and in 
the P2266 implementation, we stop creating that (incorrect) temporary when 
passing value between co_return expression and return_value. A non-trivial 
value is a better test for the temporary, but it does not add anything to the 
case with no temporary.

So what I am going to do, is to move just this change to the P2266 
implementation patch.


================
Comment at: clang/test/SemaCXX/coroutine-rvo.cpp:144
+
+template_return_task<MoveOnly> param2template(MoveOnly value) {
+  co_return value; // We should deduce U = MoveOnly.
----------------
mizvekov wrote:
> Quuxplusone wrote:
> > Nit: `return_template_task` or `generic_task` would look less confusingly 
> > like `template return_task...` at first glance. :)
> Like previous, you did not raise an objection on the original D68845 :)
> 
> But I agree with this change. But I'd like for @aaronpuchert to have a final 
> say on this since these are his tests that I am merely taking, just so they 
> do not sit there unused.
I will go ahead and make this change anyway, since he might be unavailable. We 
can always revert it if he comes back and raises an objection, I guess :)


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D99225

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

Reply via email to