bruno added a comment.

Very nice explanation, thanks for improving this!

Can you also add a AST dump test? The idea is to test for the presence of 
`ExprWithCleanups`s. Something along the lines of 
`clang/test/AST/coroutine-source-location-crash.cpp` ignoring the serialization 
part should be good.



================
Comment at: clang/lib/Sema/SemaCoroutine.cpp:475
+  if (!AwaitSuspend)
+    return Calls;
   if (!AwaitSuspend->getType()->isDependentType()) {
----------------
In case `AwaitSuspend` is null, is there any need to set `Calls.IsInvalid` as 
well?


================
Comment at: clang/lib/Sema/SemaCoroutine.cpp:490
+      // ExprWithCleanups is wrapped within maybeTailCall() prior to the resume
+      // call.
       Calls.Results[ACT::ACT_Suspend] = TailCallSuspend;
----------------
Is there already a test covering this tailcall case? It'd be nice to have one 


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D90990

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

Reply via email to