https://github.com/fmayer updated 
https://github.com/llvm/llvm-project/pull/182624

>From b5fa04bf21ae7d1c7e7be8c5053c1f86aab8d3f1 Mon Sep 17 00:00:00 2001
From: Florian Mayer <[email protected]>
Date: Fri, 20 Feb 2026 15:44:56 -0800
Subject: [PATCH 1/6] =?UTF-8?q?[=F0=9D=98=80=F0=9D=97=BD=F0=9D=97=BF]=20in?=
 =?UTF-8?q?itial=20version?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Created using spr 1.3.7
---
 clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp 
b/clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp
index c5b1ed8cfabdc..4bb3ea714039d 100644
--- a/clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp
+++ b/clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp
@@ -419,7 +419,10 @@ class ResultObjectVisitor : public AnalysisASTVisitor {
         // We treat `BuiltinBitCastExpr` as an "original initializer" too as
         // it may not even be casting from a record type -- and even if it is,
         // the two objects are in general of unrelated type.
-        isa<BuiltinBitCastExpr>(E)) {
+        isa<BuiltinBitCastExpr>(E) ||
+        // TODO: consider properly progating the Loc into the await_resume()
+        // of the result of the getOperand().
+        isa<CoawaitExpr>(E)) {
       return;
     }
     if (auto *Op = dyn_cast<BinaryOperator>(E);

>From c5a118bbf666be41182a2adb015e3715280b7c92 Mon Sep 17 00:00:00 2001
From: Florian Mayer <[email protected]>
Date: Fri, 20 Feb 2026 17:23:31 -0800
Subject: [PATCH 2/6] typo

Created using spr 1.3.7
---
 clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp 
b/clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp
index 4bb3ea714039d..7c24d1448ab9d 100644
--- a/clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp
+++ b/clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp
@@ -420,7 +420,7 @@ class ResultObjectVisitor : public AnalysisASTVisitor {
         // it may not even be casting from a record type -- and even if it is,
         // the two objects are in general of unrelated type.
         isa<BuiltinBitCastExpr>(E) ||
-        // TODO: consider properly progating the Loc into the await_resume()
+        // TODO: consider properly propagating the Loc into the await_resume()
         // of the result of the getOperand().
         isa<CoawaitExpr>(E)) {
       return;

>From 69d87d3ccaec20faa1f8fdcbc36f42ac5ac053e0 Mon Sep 17 00:00:00 2001
From: Florian Mayer <[email protected]>
Date: Fri, 20 Feb 2026 17:28:34 -0800
Subject: [PATCH 3/6] cmt

Created using spr 1.3.7
---
 clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp 
b/clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp
index 7c24d1448ab9d..743d04eff415a 100644
--- a/clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp
+++ b/clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp
@@ -420,8 +420,8 @@ class ResultObjectVisitor : public AnalysisASTVisitor {
         // it may not even be casting from a record type -- and even if it is,
         // the two objects are in general of unrelated type.
         isa<BuiltinBitCastExpr>(E) ||
-        // TODO: consider properly propagating the Loc into the await_resume()
-        // of the result of the getOperand().
+        // The result object of co_await is <op>.await_resume(), but there is
+        // no expression for that to propagate to.
         isa<CoawaitExpr>(E)) {
       return;
     }

>From a7cbf17fa8c60f9c4e74c43b361aa61cbac94725 Mon Sep 17 00:00:00 2001
From: Florian Mayer <[email protected]>
Date: Fri, 20 Feb 2026 17:32:32 -0800
Subject: [PATCH 4/6] coyield

Created using spr 1.3.7
---
 clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp 
b/clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp
index 743d04eff415a..20241f975132c 100644
--- a/clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp
+++ b/clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp
@@ -422,7 +422,9 @@ class ResultObjectVisitor : public AnalysisASTVisitor {
         isa<BuiltinBitCastExpr>(E) ||
         // The result object of co_await is <op>.await_resume(), but there is
         // no expression for that to propagate to.
-        isa<CoawaitExpr>(E)) {
+        isa<CoawaitExpr>(E) ||
+        // co_yield is equivalent to `co_await promise.yield_value(expr)`
+        isa<CoyieldExpr>(E)) {
       return;
     }
     if (auto *Op = dyn_cast<BinaryOperator>(E);

>From d30de66d49c7bb21fe3ac8fb1bf56de427e4b3d0 Mon Sep 17 00:00:00 2001
From: Florian Mayer <[email protected]>
Date: Fri, 20 Feb 2026 17:40:40 -0800
Subject: [PATCH 5/6] also co_yield

Created using spr 1.3.7
---
 clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp 
b/clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp
index 20241f975132c..f664366b7f25f 100644
--- a/clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp
+++ b/clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp
@@ -420,11 +420,11 @@ class ResultObjectVisitor : public AnalysisASTVisitor {
         // it may not even be casting from a record type -- and even if it is,
         // the two objects are in general of unrelated type.
         isa<BuiltinBitCastExpr>(E) ||
+        // This covers both co_await and co_yield.
         // The result object of co_await is <op>.await_resume(), but there is
-        // no expression for that to propagate to.
-        isa<CoawaitExpr>(E) ||
-        // co_yield is equivalent to `co_await promise.yield_value(expr)`
-        isa<CoyieldExpr>(E)) {
+        // no expression for that to prpagate to.
+        // co_yield is equivalent to `co_await promise.yield_value(expr)`.
+        isa<CoroutineSuspendExpr>(E)) {
       return;
     }
     if (auto *Op = dyn_cast<BinaryOperator>(E);

>From 9c13a38a9516a6e5abdc2ef6fc3b5015a60bc92e Mon Sep 17 00:00:00 2001
From: Florian Mayer <[email protected]>
Date: Tue, 24 Feb 2026 09:36:01 -0800
Subject: [PATCH 6/6] typo

Created using spr 1.3.7
---
 clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp 
b/clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp
index f664366b7f25f..bc13ee398fcad 100644
--- a/clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp
+++ b/clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp
@@ -422,7 +422,7 @@ class ResultObjectVisitor : public AnalysisASTVisitor {
         isa<BuiltinBitCastExpr>(E) ||
         // This covers both co_await and co_yield.
         // The result object of co_await is <op>.await_resume(), but there is
-        // no expression for that to prpagate to.
+        // no expression for that to propagate to.
         // co_yield is equivalent to `co_await promise.yield_value(expr)`.
         isa<CoroutineSuspendExpr>(E)) {
       return;

_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to