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
