[clang] [Clang] Fix finding instantiated decls for class template specializations during instantiation (PR #72346)

2023-11-14 Thread Yuxuan Chen via cfe-commits
https://github.com/yuxuanchen1997 created https://github.com/llvm/llvm-project/pull/72346 This change aims to fix https://github.com/llvm/llvm-project/issues/70375 It appears to me that the logic here should be handling specializations in general. Not just partial specialization. It also seems

[clang] [Clang] Fix finding instantiated decls for class template specializations during instantiation (PR #72346)

2023-11-14 Thread Yuxuan Chen via cfe-commits
https://github.com/yuxuanchen1997 ready_for_review https://github.com/llvm/llvm-project/pull/72346 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang] Fix finding instantiated decls for class template specializations during instantiation (PR #72346)

2023-11-14 Thread Yuxuan Chen via cfe-commits
https://github.com/yuxuanchen1997 edited https://github.com/llvm/llvm-project/pull/72346 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang] Fix finding instantiated decls for class template specializations during instantiation (PR #72346)

2023-11-15 Thread Yuxuan Chen via cfe-commits
https://github.com/yuxuanchen1997 updated https://github.com/llvm/llvm-project/pull/72346 >From f238608b792f69b93eb445ee596125f3e20acf39 Mon Sep 17 00:00:00 2001 From: Yuxuan Chen Date: Tue, 14 Nov 2023 20:52:21 -0800 Subject: [PATCH 1/5] [Clang] Fix ICE caused by mishandling template speciali

[clang] [Clang] Fix finding instantiated decls for class template specializations during instantiation (PR #72346)

2023-11-15 Thread Yuxuan Chen via cfe-commits
yuxuanchen1997 wrote: @AaronBallman , mind providing some feedback on this patch? I think this can solve #70375 https://github.com/llvm/llvm-project/pull/72346 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mail

[clang] [Clang] Fix finding instantiated decls for class template specializations during instantiation (PR #72346)

2023-11-16 Thread Yuxuan Chen via cfe-commits
@@ -0,0 +1,33 @@ +// RUN: %clang_cc1 -verify -fsyntax-only %s yuxuanchen1997 wrote: Can it be more elaborate like `GH70735-member-template-specialization.cpp`? https://github.com/llvm/llvm-project/pull/72346 ___ cfe-co

[clang] [Clang] Fix finding instantiated decls for class template specializations during instantiation (PR #72346)

2023-11-17 Thread Yuxuan Chen via cfe-commits
@@ -0,0 +1,33 @@ +// RUN: %clang_cc1 -verify -fsyntax-only %s yuxuanchen1997 wrote: gotcha, will do. https://github.com/llvm/llvm-project/pull/72346 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://list

[clang] [Clang] Fix finding instantiated decls for class template specializations during instantiation (PR #72346)

2023-11-17 Thread Yuxuan Chen via cfe-commits
yuxuanchen1997 wrote: Thanks for the review, @erichkeane. I am wondering what you mean by this needs "release note"? https://github.com/llvm/llvm-project/pull/72346 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bi

[clang] [Clang] Fix finding instantiated decls for class template specializations during instantiation (PR #72346)

2023-11-20 Thread Yuxuan Chen via cfe-commits
https://github.com/yuxuanchen1997 updated https://github.com/llvm/llvm-project/pull/72346 >From 739f1802bbfa4a7dc454e24535423b64701ac500 Mon Sep 17 00:00:00 2001 From: Yuxuan Chen Date: Tue, 14 Nov 2023 20:52:21 -0800 Subject: [PATCH 1/8] [Clang] Fix ICE caused by mishandling template speciali

[clang] [Clang] Fix finding instantiated decls for class template specializations during instantiation (PR #72346)

2023-11-20 Thread Yuxuan Chen via cfe-commits
yuxuanchen1997 wrote: I have made the suggested changes and this is ready for another round of review. https://github.com/llvm/llvm-project/pull/72346 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/list

[clang] [Clang] Fix ICE when `initial_suspend()`'s `await_resume()` returns a non-trivially destructible type (PR #72935)

2023-11-20 Thread Yuxuan Chen via cfe-commits
https://github.com/yuxuanchen1997 created https://github.com/llvm/llvm-project/pull/72935 None >From 13b54167ea0dfe4f39de7b29c3e61489aa683caa Mon Sep 17 00:00:00 2001 From: Yuxuan Chen Date: Mon, 20 Nov 2023 16:06:44 -0800 Subject: [PATCH 1/2] Attempt to fix init sus ret destroy --- clang/li

[clang] [Clang] Fix ICE when `initial_suspend()`'s `await_resume()` returns a non-trivially destructible type (PR #72935)

2023-11-20 Thread Yuxuan Chen via cfe-commits
https://github.com/yuxuanchen1997 updated https://github.com/llvm/llvm-project/pull/72935 >From 1eae15f7880574d4e5e8a9ea8757883aa136fa44 Mon Sep 17 00:00:00 2001 From: Yuxuan Chen Date: Mon, 20 Nov 2023 17:01:05 -0800 Subject: [PATCH] remove try stmt around initial suspend, merge with main try

[clang] [Clang] Fix ICE when `initial_suspend()`'s `await_resume()` returns a non-trivially destructible type (PR #72935)

2023-11-20 Thread Yuxuan Chen via cfe-commits
https://github.com/yuxuanchen1997 updated https://github.com/llvm/llvm-project/pull/72935 >From 354b4390725f9142838e2c8d3d09b058f9519c10 Mon Sep 17 00:00:00 2001 From: Yuxuan Chen Date: Mon, 20 Nov 2023 17:01:05 -0800 Subject: [PATCH] remove try stmt around initial suspend, merge with main try

[clang] [Clang] Fix ICE when `initial_suspend()`'s `await_resume()` returns a non-trivially destructible type (PR #72935)

2023-11-20 Thread Yuxuan Chen via cfe-commits
https://github.com/yuxuanchen1997 edited https://github.com/llvm/llvm-project/pull/72935 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang] Fix ICE when `initial_suspend()`'s `await_resume()` returns a non-trivially destructible type (PR #72935)

2023-11-20 Thread Yuxuan Chen via cfe-commits
https://github.com/yuxuanchen1997 edited https://github.com/llvm/llvm-project/pull/72935 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang] Fix ICE when `initial_suspend()`'s `await_resume()` returns a non-trivially destructible type (PR #72935)

2023-11-20 Thread Yuxuan Chen via cfe-commits
https://github.com/yuxuanchen1997 updated https://github.com/llvm/llvm-project/pull/72935 >From 1179379f36e4e52b8478af001a409546e3ff5859 Mon Sep 17 00:00:00 2001 From: Yuxuan Chen Date: Mon, 20 Nov 2023 17:01:05 -0800 Subject: [PATCH] remove try stmt around initial suspend, merge with main try

[clang] [Clang] Fix ICE when `initial_suspend()`'s `await_resume()` returns a non-trivially destructible type (PR #72935)

2023-11-20 Thread Yuxuan Chen via cfe-commits
https://github.com/yuxuanchen1997 updated https://github.com/llvm/llvm-project/pull/72935 >From 9d89a0bf81290b58344f4d5f220f62a3a256618d Mon Sep 17 00:00:00 2001 From: Yuxuan Chen Date: Mon, 20 Nov 2023 17:01:05 -0800 Subject: [PATCH] remove try stmt around initial suspend, merge with main try

[clang] [Clang] Fix ICE when `initial_suspend()`'s `await_resume()` returns a non-trivially destructible type (PR #72935)

2023-11-20 Thread Yuxuan Chen via cfe-commits
yuxuanchen1997 wrote: Deleting `memberCallExpressionCanThrow` should be ok. It has been buggy before (the statement wasn't even a `CXXMemberCallExp`). It shouldn't matter if the init suspend await resume is noexcept or not. The old logic did not generate for case where the coro's exception hand

[clang] [Clang][Coroutines] Properly emit EH code for initial suspend `await_resume` (PR #73073)

2023-11-21 Thread Yuxuan Chen via cfe-commits
https://github.com/yuxuanchen1997 created https://github.com/llvm/llvm-project/pull/73073 This change aims to fix an ICE in issue https://github.com/llvm/llvm-project/issues/63803 The crash happens in `ExitCXXTryStmt` because `EmitAnyExpr()` adds additional cleanup to the `EHScopeStack`. This

[clang] [Clang][Coroutines] Properly emit EH code for initial suspend `await_resume` (PR #73073)

2023-11-21 Thread Yuxuan Chen via cfe-commits
https://github.com/yuxuanchen1997 updated https://github.com/llvm/llvm-project/pull/73073 >From f782f36c42f9bc1246837bf7ff2142919794580b Mon Sep 17 00:00:00 2001 From: Yuxuan Chen Date: Tue, 21 Nov 2023 19:06:31 -0800 Subject: [PATCH 1/2] [Clang][coro] Fix crash on emitting init suspend if the

[clang] [Clang][Coroutines] Properly emit EH code for initial suspend `await_resume` (PR #73073)

2023-11-21 Thread Yuxuan Chen via cfe-commits
https://github.com/yuxuanchen1997 updated https://github.com/llvm/llvm-project/pull/73073 >From e7d1ae077d7d301094b663166cc0c14c706d2110 Mon Sep 17 00:00:00 2001 From: Yuxuan Chen Date: Tue, 21 Nov 2023 19:06:31 -0800 Subject: [PATCH 1/2] [Clang][coro] Fix crash on emitting init suspend if the

[clang] [Clang][Coroutines] Properly emit EH code for initial suspend `await_resume` (PR #73073)

2023-11-21 Thread Yuxuan Chen via cfe-commits
https://github.com/yuxuanchen1997 ready_for_review https://github.com/llvm/llvm-project/pull/73073 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang][Coroutines] Properly emit EH code for initial suspend `await_resume` (PR #73073)

2023-11-21 Thread Yuxuan Chen via cfe-commits
https://github.com/yuxuanchen1997 edited https://github.com/llvm/llvm-project/pull/73073 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang][Coroutines] Properly emit EH code for initial suspend `await_resume` (PR #73073)

2023-11-21 Thread Yuxuan Chen via cfe-commits
https://github.com/yuxuanchen1997 updated https://github.com/llvm/llvm-project/pull/73073 >From e7d1ae077d7d301094b663166cc0c14c706d2110 Mon Sep 17 00:00:00 2001 From: Yuxuan Chen Date: Tue, 21 Nov 2023 19:06:31 -0800 Subject: [PATCH 1/2] [Clang][coro] Fix crash on emitting init suspend if the

[clang] [Clang] Fix ICE when `initial_suspend()`'s `await_resume()` returns a non-trivially destructible type (PR #72935)

2023-11-21 Thread Yuxuan Chen via cfe-commits
https://github.com/yuxuanchen1997 closed https://github.com/llvm/llvm-project/pull/72935 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang][Coroutines] Properly emit EH code for initial suspend `await_resume` (PR #73073)

2023-11-21 Thread Yuxuan Chen via cfe-commits
https://github.com/yuxuanchen1997 updated https://github.com/llvm/llvm-project/pull/73073 >From e7d1ae077d7d301094b663166cc0c14c706d2110 Mon Sep 17 00:00:00 2001 From: Yuxuan Chen Date: Tue, 21 Nov 2023 19:06:31 -0800 Subject: [PATCH 1/3] [Clang][coro] Fix crash on emitting init suspend if the

[clang] [Clang][Coroutines] Properly emit EH code for initial suspend `await_resume` (PR #73073)

2023-11-21 Thread Yuxuan Chen via cfe-commits
https://github.com/yuxuanchen1997 updated https://github.com/llvm/llvm-project/pull/73073 >From e7d1ae077d7d301094b663166cc0c14c706d2110 Mon Sep 17 00:00:00 2001 From: Yuxuan Chen Date: Tue, 21 Nov 2023 19:06:31 -0800 Subject: [PATCH 1/3] [Clang][coro] Fix crash on emitting init suspend if the

[clang] [Clang][Coroutines] Properly emit EH code for initial suspend `await_resume` (PR #73073)

2023-11-21 Thread Yuxuan Chen via cfe-commits
https://github.com/yuxuanchen1997 updated https://github.com/llvm/llvm-project/pull/73073 >From e7d1ae077d7d301094b663166cc0c14c706d2110 Mon Sep 17 00:00:00 2001 From: Yuxuan Chen Date: Tue, 21 Nov 2023 19:06:31 -0800 Subject: [PATCH 1/4] [Clang][coro] Fix crash on emitting init suspend if the

[clang] [Clang][Coroutines] Properly emit EH code for initial suspend `await_resume` (PR #73073)

2023-11-21 Thread Yuxuan Chen via cfe-commits
https://github.com/yuxuanchen1997 closed https://github.com/llvm/llvm-project/pull/73073 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang] Coroutines code gen check for member call noexcept nested in a temp expr (PR #73160)

2023-11-22 Thread Yuxuan Chen via cfe-commits
https://github.com/yuxuanchen1997 created https://github.com/llvm/llvm-project/pull/73160 Previously we were not properly skipping the generation of the `try { }` block around the `init_suspend.await_resume()` if the `await_resume` is not returning void. The reason being that the resume expres

[clang] [Clang] Coroutines code gen check for member call noexcept nested in a temp expr (PR #73160)

2023-11-22 Thread Yuxuan Chen via cfe-commits
https://github.com/yuxuanchen1997 ready_for_review https://github.com/llvm/llvm-project/pull/73160 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang] CGCoroutines skip emitting try block for value returning `noexcept` init `await_resume` calls (PR #73160)

2023-11-22 Thread Yuxuan Chen via cfe-commits
https://github.com/yuxuanchen1997 edited https://github.com/llvm/llvm-project/pull/73160 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang] CGCoroutines skip emitting try block for value returning `noexcept` init `await_resume` calls (PR #73160)

2023-11-22 Thread Yuxuan Chen via cfe-commits
https://github.com/yuxuanchen1997 edited https://github.com/llvm/llvm-project/pull/73160 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang] CGCoroutines skip emitting try block for value returning `noexcept` init `await_resume` calls (PR #73160)

2023-11-22 Thread Yuxuan Chen via cfe-commits
https://github.com/yuxuanchen1997 edited https://github.com/llvm/llvm-project/pull/73160 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang] Warn against unused parameters in C++ coroutines with `-Wunused-parameters` (PR #70567)

2023-10-28 Thread Yuxuan Chen via cfe-commits
https://github.com/yuxuanchen1997 created https://github.com/llvm/llvm-project/pull/70567 This PR is proposing a fix for https://github.com/llvm/llvm-project/issues/65971. Previously, given a coroutine like this ``` task foo(int a) { co_return; } ``` Parameter `a` is never used. However, bec

[clang] [Clang] Warn against unused parameters in C++ coroutines with `-Wunused-parameters` (PR #70567)

2023-10-28 Thread Yuxuan Chen via cfe-commits
https://github.com/yuxuanchen1997 updated https://github.com/llvm/llvm-project/pull/70567 >From ba6c43cc63e9ae3c8d174406ced4df839af3e0a7 Mon Sep 17 00:00:00 2001 From: Yuxuan Chen Date: Fri, 27 Oct 2023 16:37:40 -0700 Subject: [PATCH 1/2] [Clang] Coroutines: warn against unused parameters in C+

[clang] [Clang] Warn against unused parameters in C++ coroutines with `-Wunused-parameters` (PR #70567)

2023-10-28 Thread Yuxuan Chen via cfe-commits
https://github.com/yuxuanchen1997 updated https://github.com/llvm/llvm-project/pull/70567 >From ba6c43cc63e9ae3c8d174406ced4df839af3e0a7 Mon Sep 17 00:00:00 2001 From: Yuxuan Chen Date: Fri, 27 Oct 2023 16:37:40 -0700 Subject: [PATCH 1/3] [Clang] Coroutines: warn against unused parameters in C+

[clang] [Clang] Warn against unused parameters in C++ coroutines with `-Wunused-parameters` (PR #70567)

2023-10-28 Thread Yuxuan Chen via cfe-commits
https://github.com/yuxuanchen1997 ready_for_review https://github.com/llvm/llvm-project/pull/70567 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang] Warn against unused parameters in C++ coroutines with `-Wunused-parameters` (PR #70567)

2023-10-29 Thread Yuxuan Chen via cfe-commits
https://github.com/yuxuanchen1997 updated https://github.com/llvm/llvm-project/pull/70567 >From ba6c43cc63e9ae3c8d174406ced4df839af3e0a7 Mon Sep 17 00:00:00 2001 From: Yuxuan Chen Date: Fri, 27 Oct 2023 16:37:40 -0700 Subject: [PATCH 1/3] [Clang] Coroutines: warn against unused parameters in C+

[clang] [Clang] Warn against unused parameters in C++ coroutines with `-Wunused-parameters` (PR #70567)

2023-10-31 Thread Yuxuan Chen via cfe-commits
https://github.com/yuxuanchen1997 updated https://github.com/llvm/llvm-project/pull/70567 >From 77b9cba0aaa1157cc323f2f3ef7b1cef536ef147 Mon Sep 17 00:00:00 2001 From: Yuxuan Chen Date: Fri, 27 Oct 2023 16:37:40 -0700 Subject: [PATCH 1/5] [Clang] Coroutines: warn against unused parameters in C+

[clang] [Clang] Warn against unused parameters in C++ coroutines with `-Wunused-parameters` (PR #70567)

2023-10-31 Thread Yuxuan Chen via cfe-commits
yuxuanchen1997 wrote: @ChuanqiXu9 , I just updated the PR. Do you mind checking if using a `RecursiveASTVisitor` is appropriate for this? I am a first time contributor and would appreciate more feedback. Thank you. https://github.com/llvm/llvm-project/pull/70567 __

[clang] [Clang] Warn against unused parameters in C++ coroutines with `-Wunused-parameters` (PR #70567)

2023-10-31 Thread Yuxuan Chen via cfe-commits
@@ -3165,7 +3165,16 @@ class Sema final { /// Diagnose any unused parameters in the given sequence of /// ParmVarDecl pointers. - void DiagnoseUnusedParameters(ArrayRef Parameters); + /// + /// Normally, we check if the parameter decls have the Referenced bit set. + //

[clang] [Clang] Warn against unused parameters in C++ coroutines with `-Wunused-parameters` (PR #70567)

2023-11-01 Thread Yuxuan Chen via cfe-commits
https://github.com/yuxuanchen1997 updated https://github.com/llvm/llvm-project/pull/70567 >From 77b9cba0aaa1157cc323f2f3ef7b1cef536ef147 Mon Sep 17 00:00:00 2001 From: Yuxuan Chen Date: Fri, 27 Oct 2023 16:37:40 -0700 Subject: [PATCH 1/6] [Clang] Coroutines: warn against unused parameters in C+

[clang] [Clang] Warn against unused parameters in C++ coroutines with `-Wunused-parameters` (PR #70567)

2023-11-01 Thread Yuxuan Chen via cfe-commits
@@ -3165,7 +3165,16 @@ class Sema final { /// Diagnose any unused parameters in the given sequence of /// ParmVarDecl pointers. - void DiagnoseUnusedParameters(ArrayRef Parameters); + /// + /// Normally, we check if the parameter decls have the Referenced bit set. + //

[clang] [Clang] Warn against unused parameters in C++ coroutines with `-Wunused-parameters` (PR #70567)

2023-11-01 Thread Yuxuan Chen via cfe-commits
https://github.com/yuxuanchen1997 edited https://github.com/llvm/llvm-project/pull/70567 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang] Warn against unused parameters in C++ coroutines with `-Wunused-parameters` (PR #70567)

2023-11-01 Thread Yuxuan Chen via cfe-commits
https://github.com/yuxuanchen1997 closed https://github.com/llvm/llvm-project/pull/70567 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang] Warn against unused parameters in C++ coroutines with `-Wunused-parameters` (PR #70567)

2023-11-01 Thread Yuxuan Chen via cfe-commits
yuxuanchen1997 wrote: @ChuanqiXu9 , I think I got it wrong last time. It really should be a trivial change. Let me prepare a new PR. https://github.com/llvm/llvm-project/pull/70567 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists

[clang] [Clang] Preserve coroutine parameter referenced state (PR #70973)

2023-11-01 Thread Yuxuan Chen via cfe-commits
https://github.com/yuxuanchen1997 created https://github.com/llvm/llvm-project/pull/70973 This PR is proposing a fix for https://github.com/llvm/llvm-project/issues/65971. Previously, given a coroutine like this ``` task foo(int a) { co_return; } ``` Parameter `a` is never used. However, bec

[clang] [Clang] Preserve coroutine parameter referenced state (PR #70973)

2023-11-01 Thread Yuxuan Chen via cfe-commits
https://github.com/yuxuanchen1997 updated https://github.com/llvm/llvm-project/pull/70973 >From 453dd8c6892923118c8952e92fdb7375f7ed4877 Mon Sep 17 00:00:00 2001 From: Yuxuan Chen Date: Wed, 1 Nov 2023 11:59:57 -0700 Subject: [PATCH] [Clang] Preserve coroutine parameter referenced state --- c

[clang] [Clang] Preserve coroutine parameter referenced state (PR #70973)

2023-11-01 Thread Yuxuan Chen via cfe-commits
https://github.com/yuxuanchen1997 updated https://github.com/llvm/llvm-project/pull/70973 >From 3be73f10d376739460f0c22d3292bc0de8f64b82 Mon Sep 17 00:00:00 2001 From: Yuxuan Chen Date: Wed, 1 Nov 2023 11:59:57 -0700 Subject: [PATCH] [Clang] Preserve coroutine parameter referenced state --- c

[clang] [Clang] Preserve coroutine parameter referenced state (PR #70973)

2023-11-01 Thread Yuxuan Chen via cfe-commits
https://github.com/yuxuanchen1997 ready_for_review https://github.com/llvm/llvm-project/pull/70973 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang] Preserve coroutine parameter referenced state (PR #70973)

2023-11-01 Thread Yuxuan Chen via cfe-commits
yuxuanchen1997 wrote: @ChuanqiXu9 it was my mistake. This patch does work. https://github.com/llvm/llvm-project/pull/70973 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang] Preserve coroutine parameter referenced state (PR #70973)

2023-11-01 Thread Yuxuan Chen via cfe-commits
@@ -1965,9 +1965,15 @@ bool Sema::buildCoroutineParameterMoves(SourceLocation Loc) { if (PD->getType()->isDependentType()) continue; +// Preserve the referenced state for unused parameter diagnostics. +bool DeclReferenced = PD->isReferenced(); + ExprRes

[clang] [Clang] Preserve coroutine parameter referenced state (PR #70973)

2023-11-01 Thread Yuxuan Chen via cfe-commits
@@ -1965,9 +1965,15 @@ bool Sema::buildCoroutineParameterMoves(SourceLocation Loc) { if (PD->getType()->isDependentType()) continue; +// Preserve the referenced state for unused parameter diagnostics. +bool DeclReferenced = PD->isReferenced(); --

[clang] [Clang] Preserve coroutine parameter referenced state (PR #70973)

2023-11-01 Thread Yuxuan Chen via cfe-commits
https://github.com/yuxuanchen1997 edited https://github.com/llvm/llvm-project/pull/70973 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang] Preserve coroutine parameter referenced state (PR #70973)

2023-11-01 Thread Yuxuan Chen via cfe-commits
https://github.com/yuxuanchen1997 edited https://github.com/llvm/llvm-project/pull/70973 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang] CGCoroutines skip emitting try block for value returning `noexcept` init `await_resume` calls (PR #73160)

2023-11-27 Thread Yuxuan Chen via cfe-commits
@@ -129,7 +130,14 @@ static SmallString<32> buildSuspendPrefixStr(CGCoroData &Coro, AwaitKind Kind) { return Prefix; } -static bool memberCallExpressionCanThrow(const Expr *E) { +static bool ResumeExprCanThrow(const CoroutineSuspendExpr &S) { + const Expr *E = S.getResumeE

[clang] [Clang] CGCoroutines skip emitting try block for value returning `noexcept` init `await_resume` calls (PR #73160)

2023-11-27 Thread Yuxuan Chen via cfe-commits
https://github.com/yuxuanchen1997 edited https://github.com/llvm/llvm-project/pull/73160 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang] CGCoroutines skip emitting try block for value returning `noexcept` init `await_resume` calls (PR #73160)

2023-11-27 Thread Yuxuan Chen via cfe-commits
https://github.com/yuxuanchen1997 updated https://github.com/llvm/llvm-project/pull/73160 >From 08e2293255a504043fe404cceaeb3ff1fc0dc344 Mon Sep 17 00:00:00 2001 From: Yuxuan Chen Date: Tue, 21 Nov 2023 21:38:12 -0800 Subject: [PATCH] add checks for nested noexcept in cxxtempexpr --- clang/li

[clang] [Clang] CGCoroutines skip emitting try block for value returning `noexcept` init `await_resume` calls (PR #73160)

2023-11-27 Thread Yuxuan Chen via cfe-commits
@@ -38,9 +39,52 @@ Task coro_create() { co_return; } -// CHECK-LABEL: define{{.*}} ptr @_Z11coro_createv( +// CHECK-LABEL: define{{.*}} ptr @_ZN9can_throw11coro_createEv( // CHECK: init.ready: // CHECK-NEXT: store i1 true, ptr {{.*}} -// CHECK-NEXT: call void @_ZN4Task23

[clang] [Clang][NFC] Refactor suspend emit logic in coroutine codegen (PR #73564)

2023-11-27 Thread Yuxuan Chen via cfe-commits
https://github.com/yuxuanchen1997 created https://github.com/llvm/llvm-project/pull/73564 Depends on https://github.com/llvm/llvm-project/pull/73160 I am not a big fan of the `struct LValueOrRValue`. It appears to me that the intent is to use it like a union, without explicitly saying `union`.

[clang] [Clang][NFC] Refactor suspend emit logic in coroutine codegen (PR #73564)

2023-11-27 Thread Yuxuan Chen via cfe-commits
https://github.com/yuxuanchen1997 ready_for_review https://github.com/llvm/llvm-project/pull/73564 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang] CGCoroutines skip emitting try block for value returning `noexcept` init `await_resume` calls (PR #73160)

2023-11-27 Thread Yuxuan Chen via cfe-commits
https://github.com/yuxuanchen1997 edited https://github.com/llvm/llvm-project/pull/73160 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang] CGCoroutines skip emitting try block for value returning `noexcept` init `await_resume` calls (PR #73160)

2023-11-28 Thread Yuxuan Chen via cfe-commits
@@ -129,7 +130,14 @@ static SmallString<32> buildSuspendPrefixStr(CGCoroData &Coro, AwaitKind Kind) { return Prefix; } -static bool memberCallExpressionCanThrow(const Expr *E) { +static bool ResumeExprCanThrow(const CoroutineSuspendExpr &S) { + const Expr *E = S.getResumeE

[clang] [Clang] CGCoroutines skip emitting try block for value returning `noexcept` init `await_resume` calls (PR #73160)

2023-11-28 Thread Yuxuan Chen via cfe-commits
https://github.com/yuxuanchen1997 updated https://github.com/llvm/llvm-project/pull/73160 >From dbd06bc001c0e00436fcacac231d9d80b443edf4 Mon Sep 17 00:00:00 2001 From: Yuxuan Chen Date: Tue, 21 Nov 2023 21:38:12 -0800 Subject: [PATCH 1/2] add checks for nested noexcept in cxxtempexpr --- clan

[clang] [Clang] CGCoroutines skip emitting try block for value returning `noexcept` init `await_resume` calls (PR #73160)

2023-11-28 Thread Yuxuan Chen via cfe-commits
yuxuanchen1997 wrote: @ChuanqiXu9, I updated the check like you suggested, and it should look much nicer now. The only caveat is that the `children()` call isn't going to cover the implicit destructor call in a `CXXBindTemporaryExpr`. That pattern matching case is here to stay and likely there

[clang] [Clang] CGCoroutines skip emitting try block for value returning `noexcept` init `await_resume` calls (PR #73160)

2023-11-28 Thread Yuxuan Chen via cfe-commits
https://github.com/yuxuanchen1997 updated https://github.com/llvm/llvm-project/pull/73160 >From dbd06bc001c0e00436fcacac231d9d80b443edf4 Mon Sep 17 00:00:00 2001 From: Yuxuan Chen Date: Tue, 21 Nov 2023 21:38:12 -0800 Subject: [PATCH 1/3] add checks for nested noexcept in cxxtempexpr --- clan

[clang] [Clang] CGCoroutines skip emitting try block for value returning `noexcept` init `await_resume` calls (PR #73160)

2023-11-28 Thread Yuxuan Chen via cfe-commits
@@ -129,14 +129,48 @@ static SmallString<32> buildSuspendPrefixStr(CGCoroData &Coro, AwaitKind Kind) { return Prefix; } -static bool memberCallExpressionCanThrow(const Expr *E) { - if (const auto *CE = dyn_cast(E)) -if (const auto *Proto = -CE->getMethodDec

[clang] [Clang] CGCoroutines skip emitting try block for value returning `noexcept` init `await_resume` calls (PR #73160)

2023-11-28 Thread Yuxuan Chen via cfe-commits
https://github.com/yuxuanchen1997 closed https://github.com/llvm/llvm-project/pull/73160 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang][NFC] Refactor suspend emit logic in coroutine codegen (PR #73564)

2023-11-28 Thread Yuxuan Chen via cfe-commits
https://github.com/yuxuanchen1997 updated https://github.com/llvm/llvm-project/pull/73564 >From 5f5ebec41c90366bf3c7ec1ee53154ba7afcb849 Mon Sep 17 00:00:00 2001 From: Yuxuan Chen Date: Wed, 22 Nov 2023 13:38:54 -0800 Subject: [PATCH] Refactor how we generate RValue vs LValue coawait expression

[clang] [Clang] Fix ICE where C++ Template Instantiation failed to handle attributed lambdas (PR #76523)

2023-12-28 Thread Yuxuan Chen via cfe-commits
https://github.com/yuxuanchen1997 created https://github.com/llvm/llvm-project/pull/76523 This PR is proposing a fix for https://github.com/llvm/llvm-project/issues/76521. Clang used to assume that during template instantiation, Lambda expressions can only have `FunctionProtoTypeLoc`s. Howeve

[clang] [Clang] Fix ICE where C++ Template Instantiation failed to handle attributed lambdas (PR #76523)

2024-01-02 Thread Yuxuan Chen via cfe-commits
yuxuanchen1997 wrote: Gentle Ping. https://github.com/llvm/llvm-project/pull/76523 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang] Fix ICE where C++ Template Instantiation failed to handle attributed lambdas (PR #76523)

2024-01-03 Thread Yuxuan Chen via cfe-commits
https://github.com/yuxuanchen1997 closed https://github.com/llvm/llvm-project/pull/76523 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang] Fix ICE where C++ Template Instantiation failed to handle attributed lambdas (PR #76523)

2024-01-03 Thread Yuxuan Chen via cfe-commits
yuxuanchen1997 wrote: > @yuxuanchen1997 the test you added is failing due to an additional diagnostic > being produced on PS4/PS5 targets causing the test to fail. Can you please > take a look? > > * https://lab.llvm.org/buildbot/#/builders/139/builds/56396 > * https://lab.llvm.org/buildbot/#/

[clang] [Clang] Fix failing CI with different test case attribute & test macro (PR #76863)

2024-01-03 Thread Yuxuan Chen via cfe-commits
https://github.com/yuxuanchen1997 created https://github.com/llvm/llvm-project/pull/76863 As in title, https://github.com/llvm/llvm-project/commit/a8f43974260ec244d78336d2530f8fc097753580 broke CI due to the calling convention not available on certain targets. This patch uses a simpler callin

[clang] [Clang] Fix ICE where C++ Template Instantiation failed to handle attributed lambdas (PR #76523)

2024-01-03 Thread Yuxuan Chen via cfe-commits
yuxuanchen1997 wrote: @dyung https://github.com/llvm/llvm-project/pull/76863 https://github.com/llvm/llvm-project/pull/76523 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang] Fix failing CI with different test case attribute & test macro (PR #76863)

2024-01-03 Thread Yuxuan Chen via cfe-commits
yuxuanchen1997 wrote: Like this? https://github.com/llvm/llvm-project/pull/76863 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang] Fix failing CI with different test case attribute & test macro (PR #76863)

2024-01-03 Thread Yuxuan Chen via cfe-commits
https://github.com/yuxuanchen1997 updated https://github.com/llvm/llvm-project/pull/76863 >From 8c33419f2217a7eb98a591813c6ce6c5185ff6c7 Mon Sep 17 00:00:00 2001 From: Yuxuan Chen Date: Wed, 3 Jan 2024 12:18:21 -0800 Subject: [PATCH] Use a different calling convention attribute --- clang/test

[clang] [Clang] Fix failing CI with different test case attribute & host triple (PR #76863)

2024-01-03 Thread Yuxuan Chen via cfe-commits
https://github.com/yuxuanchen1997 edited https://github.com/llvm/llvm-project/pull/76863 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang] Fix failing CI with different test case attribute & host triple (PR #76863)

2024-01-03 Thread Yuxuan Chen via cfe-commits
https://github.com/yuxuanchen1997 closed https://github.com/llvm/llvm-project/pull/76863 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang] Bugfixes and improved support for `AttributedType`s in lambdas (PR #85325)

2024-03-14 Thread Yuxuan Chen via cfe-commits
yuxuanchen1997 wrote: Great. Thanks! https://github.com/llvm/llvm-project/pull/85325 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang] Bugfixes and improved support for `AttributedType`s in lambdas (PR #85325)

2024-03-14 Thread Yuxuan Chen via cfe-commits
@@ -13830,62 +13820,40 @@ TreeTransform::TransformLambdaExpr(LambdaExpr *E) { getSema().AddTemplateParametersToLambdaCallOperator(NewCallOperator, Class, TPL); - // Transform the type of the original lambda's call o

[clang] [Clang] Bugfixes and improved support for `AttributedType`s in lambdas (PR #85325)

2024-03-14 Thread Yuxuan Chen via cfe-commits
@@ -13830,62 +13820,40 @@ TreeTransform::TransformLambdaExpr(LambdaExpr *E) { getSema().AddTemplateParametersToLambdaCallOperator(NewCallOperator, Class, TPL); - // Transform the type of the original lambda's call o

[clang] [Clang] Bugfixes and improved support for `AttributedType`s in lambdas (PR #85325)

2024-03-14 Thread Yuxuan Chen via cfe-commits
@@ -3140,13 +3140,35 @@ const FunctionType *ASTContext::adjustFunctionType(const FunctionType *T, return cast(Result.getTypePtr()); } +QualType ASTContext::adjustFunctionResultType(QualType FunctionType, + QualType ResultType) {

[clang] [Clang] Bugfixes and improved support for `AttributedType`s in lambdas (PR #85325)

2024-03-14 Thread Yuxuan Chen via cfe-commits
@@ -3140,13 +3140,35 @@ const FunctionType *ASTContext::adjustFunctionType(const FunctionType *T, return cast(Result.getTypePtr()); } +QualType ASTContext::adjustFunctionResultType(QualType FunctionType, + QualType ResultType) {

[clang] [Clang] Coroutines: Properly Check if `await_suspend` return type convertible to `std::coroutine_handle<>` (PR #85684)

2024-03-18 Thread Yuxuan Chen via cfe-commits
https://github.com/yuxuanchen1997 created https://github.com/llvm/llvm-project/pull/85684 This patch aims to fix https://github.com/llvm/llvm-project/issues/77111 The original issue is crash-on-invalid. However, Clang currently accepts programs where `await_suspend` returns a type that's conve

[clang] [Clang] Coroutines: Properly Check if `await_suspend` return type convertible to `std::coroutine_handle<>` (PR #85684)

2024-03-18 Thread Yuxuan Chen via cfe-commits
https://github.com/yuxuanchen1997 edited https://github.com/llvm/llvm-project/pull/85684 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang] Coroutines: Properly Check if `await_suspend` return type convertible to `std::coroutine_handle<>` (PR #85684)

2024-03-19 Thread Yuxuan Chen via cfe-commits
https://github.com/yuxuanchen1997 updated https://github.com/llvm/llvm-project/pull/85684 >From 08de54f02038795924a6e5fdbcf51a496fcedf56 Mon Sep 17 00:00:00 2001 From: Yuxuan Chen Date: Mon, 18 Mar 2024 10:45:20 -0700 Subject: [PATCH] Check if Coroutine await_suspend type returns the right type

[clang] [Clang] Coroutines: Properly Check if `await_suspend` return type convertible to `std::coroutine_handle<>` (PR #85684)

2024-03-20 Thread Yuxuan Chen via cfe-commits
yuxuanchen1997 wrote: > > I am also ok with changing the patch to reject programs whose await_suspend > > doesn't strictly return std::coroutine_handle if upstream prefers. > > It should be good to do that since it makes the behavior more conforming. And > maybe it is better to do this a seper

[clang] [Clang] Coroutines: Properly Check if `await_suspend` return type convertible to `std::coroutine_handle<>` (PR #85684)

2024-03-20 Thread Yuxuan Chen via cfe-commits
yuxuanchen1997 wrote: > I am confused. If we don't need to check whether a type can be converted to > std::coroutine_handle, why do we still need EvaluateBinaryTypeTraits or > similar things. I thought your previous comment was to show concern about exposing `EvaluateBinaryTypeTraits` contain

[clang] [Clang] Coroutines: Properly Check if `await_suspend` return type convertible to `std::coroutine_handle<>` (PR #85684)

2024-03-22 Thread Yuxuan Chen via cfe-commits
https://github.com/yuxuanchen1997 updated https://github.com/llvm/llvm-project/pull/85684 >From 6887adae7500c4791a8620fa5b558e195e2c64cc Mon Sep 17 00:00:00 2001 From: Yuxuan Chen Date: Mon, 18 Mar 2024 10:45:20 -0700 Subject: [PATCH] Check if Coroutine await_suspend type returns the right type

[clang] [Clang] Coroutines: Properly Check if `await_suspend` return type is a `std::coroutine_handle` (PR #85684)

2024-03-22 Thread Yuxuan Chen via cfe-commits
https://github.com/yuxuanchen1997 edited https://github.com/llvm/llvm-project/pull/85684 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang] Coroutines: Properly Check if `await_suspend` return type is a `std::coroutine_handle` (PR #85684)

2024-03-22 Thread Yuxuan Chen via cfe-commits
https://github.com/yuxuanchen1997 edited https://github.com/llvm/llvm-project/pull/85684 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang] Coroutines: Properly Check if `await_suspend` return type is a `std::coroutine_handle` (PR #85684)

2024-03-22 Thread Yuxuan Chen via cfe-commits
yuxuanchen1997 wrote: @ChuanqiXu9 I have updated the patch to check for `std::coroutine_handle` and does not rely on `SemaExprCXX` changes. Please let me know what you think. https://github.com/llvm/llvm-project/pull/85684 ___ cfe-commits mailing l

[clang] [Clang] Coroutines: Properly Check if `await_suspend` return type is a `std::coroutine_handle` (PR #85684)

2024-03-22 Thread Yuxuan Chen via cfe-commits
https://github.com/yuxuanchen1997 updated https://github.com/llvm/llvm-project/pull/85684 >From 4e10b2c4dfed3fb59ee03c716852f7fb45de081a Mon Sep 17 00:00:00 2001 From: Yuxuan Chen Date: Mon, 18 Mar 2024 10:45:20 -0700 Subject: [PATCH] Check if Coroutine await_suspend type returns the right type

[clang] [Clang] Coroutines: Properly Check if `await_suspend` return type is a `std::coroutine_handle` (PR #85684)

2024-03-22 Thread Yuxuan Chen via cfe-commits
@@ -418,39 +448,60 @@ static ReadySuspendResumeResult buildCoawaitCalls(Sema &S, VarDecl *CoroPromise, return Calls; } Expr *CoroHandle = CoroHandleRes.get(); - CallExpr *AwaitSuspend = cast_or_null( - BuildSubExpr(ACT::ACT_Suspend, "await_suspend", CoroHandle));

[clang] [Clang] Coroutines: Properly Check if `await_suspend` return type is a `std::coroutine_handle` (PR #85684)

2024-03-22 Thread Yuxuan Chen via cfe-commits
@@ -418,39 +448,60 @@ static ReadySuspendResumeResult buildCoawaitCalls(Sema &S, VarDecl *CoroPromise, return Calls; } Expr *CoroHandle = CoroHandleRes.get(); - CallExpr *AwaitSuspend = cast_or_null( - BuildSubExpr(ACT::ACT_Suspend, "await_suspend", CoroHandle));

[clang] [Clang] Coroutines: Properly Check if `await_suspend` return type is a `std::coroutine_handle` (PR #85684)

2024-03-25 Thread Yuxuan Chen via cfe-commits
https://github.com/yuxuanchen1997 updated https://github.com/llvm/llvm-project/pull/85684 >From b843c2f71a1a43cb897b557f783d60c6bf26f687 Mon Sep 17 00:00:00 2001 From: Yuxuan Chen Date: Mon, 18 Mar 2024 10:45:20 -0700 Subject: [PATCH] Check if Coroutine await_suspend type returns the right type

[clang] [Clang] Coroutines: Properly Check if `await_suspend` return type is a `std::coroutine_handle` (PR #85684)

2024-03-26 Thread Yuxuan Chen via cfe-commits
@@ -418,39 +448,60 @@ static ReadySuspendResumeResult buildCoawaitCalls(Sema &S, VarDecl *CoroPromise, return Calls; } Expr *CoroHandle = CoroHandleRes.get(); - CallExpr *AwaitSuspend = cast_or_null( - BuildSubExpr(ACT::ACT_Suspend, "await_suspend", CoroHandle));

[clang] [Clang] Coroutines: Properly Check if `await_suspend` return type is a `std::coroutine_handle` (PR #85684)

2024-03-26 Thread Yuxuan Chen via cfe-commits
@@ -418,39 +448,60 @@ static ReadySuspendResumeResult buildCoawaitCalls(Sema &S, VarDecl *CoroPromise, return Calls; } Expr *CoroHandle = CoroHandleRes.get(); - CallExpr *AwaitSuspend = cast_or_null( - BuildSubExpr(ACT::ACT_Suspend, "await_suspend", CoroHandle));

  1   2   3   4   >