================
@@ -880,14 +898,12 @@ ExprResult 
Sema::BuildUnresolvedCoawaitExpr(SourceLocation Loc, Expr *Operand,
   }
 
   auto *RD = Promise->getType()->getAsCXXRecordDecl();
-  bool AwaitElidable =
-      isCoroAwaitElidableCall(Operand) &&
-      isAttributedCoroAwaitElidable(
-          getCurFunctionDecl(/*AllowLambda=*/true)->getReturnType());
-
-  if (AwaitElidable)
-    if (auto *Call = dyn_cast<CallExpr>(Operand->IgnoreImplicit()))
-      Call->setCoroElideSafe();
+
+  bool CurFnAwaitElidable = isAttributedCoroAwaitElidable(
+      getCurFunctionDecl(/*AllowLambda=*/true)->getReturnType());
----------------
vogelsgesang wrote:

shouldn't we actually check if the return type of àwait_transform` is marked as 
elideable, instead of the immediate argument to `co_await`? Or maybe we should 
check that both the immediate argument and the transformed awaitable are 
annotated?

(Not really related to this commit. I just noticed this as I was reviewing this 
code change here. Fell free to ship this PR without addressing this comment. In 
case this is actually something we want to change, we should probably do so in 
a separate PR, anyway...)

https://github.com/llvm/llvm-project/pull/108474
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to