[clang] [coroutines] Introduce [[clang::coro_lifetimebound]] (PR #72851)

2023-11-22 Thread Utkarsh Saxena via cfe-commits
https://github.com/usx95 closed https://github.com/llvm/llvm-project/pull/72851 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [coroutines] Introduce [[clang::coro_lifetimebound]] (PR #72851)

2023-11-21 Thread Utkarsh Saxena via cfe-commits
https://github.com/usx95 updated https://github.com/llvm/llvm-project/pull/72851 >From 164bf1e94ec05e50be05d085ce2a4381711df11b Mon Sep 17 00:00:00 2001 From: Utkarsh Saxena Date: Mon, 20 Nov 2023 12:17:30 +0100 Subject: [PATCH 01/10] Introduce [[clang::coro_lifetimebound]] (cherry picked from

[clang] [coroutines] Introduce [[clang::coro_lifetimebound]] (PR #72851)

2023-11-21 Thread Utkarsh Saxena via cfe-commits
usx95 wrote: I would add the mentioned warning in a follow-up change. https://github.com/llvm/llvm-project/pull/72851 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [coroutines] Introduce [[clang::coro_lifetimebound]] (PR #72851)

2023-11-21 Thread Ilya Biryukov via cfe-commits
@@ -334,6 +334,10 @@ Attribute Changes in Clang [[clang::code_align(A)]] for(;;) { } } +- Clang now introduced ``[[clang::coro_lifetimebound]]`` attribute. + All arguments to a function are considered to be lifetime bound if the function ilya-b

[clang] [coroutines] Introduce [[clang::coro_lifetimebound]] (PR #72851)

2023-11-21 Thread Ilya Biryukov via cfe-commits
https://github.com/ilya-biryukov edited https://github.com/llvm/llvm-project/pull/72851 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [coroutines] Introduce [[clang::coro_lifetimebound]] (PR #72851)

2023-11-21 Thread Ilya Biryukov via cfe-commits
https://github.com/ilya-biryukov approved this pull request. LGTM with a few suggestiosn. One is in the comment. I also suggest to add a warning when users mark the type as `coro_lifetimebound` without `coro_return_type`. The analysis will be disabled in this case and it may be hard to understa

[clang] [coroutines] Introduce [[clang::coro_lifetimebound]] (PR #72851)

2023-11-21 Thread Utkarsh Saxena via cfe-commits
https://github.com/usx95 updated https://github.com/llvm/llvm-project/pull/72851 >From 164bf1e94ec05e50be05d085ce2a4381711df11b Mon Sep 17 00:00:00 2001 From: Utkarsh Saxena Date: Mon, 20 Nov 2023 12:17:30 +0100 Subject: [PATCH 1/9] Introduce [[clang::coro_lifetimebound]] (cherry picked from co

[clang] [coroutines] Introduce [[clang::coro_lifetimebound]] (PR #72851)

2023-11-21 Thread Utkarsh Saxena via cfe-commits
https://github.com/usx95 updated https://github.com/llvm/llvm-project/pull/72851 >From 164bf1e94ec05e50be05d085ce2a4381711df11b Mon Sep 17 00:00:00 2001 From: Utkarsh Saxena Date: Mon, 20 Nov 2023 12:17:30 +0100 Subject: [PATCH 1/8] Introduce [[clang::coro_lifetimebound]] (cherry picked from co

[clang] [coroutines] Introduce [[clang::coro_lifetimebound]] (PR #72851)

2023-11-21 Thread Utkarsh Saxena via cfe-commits
https://github.com/usx95 updated https://github.com/llvm/llvm-project/pull/72851 >From 164bf1e94ec05e50be05d085ce2a4381711df11b Mon Sep 17 00:00:00 2001 From: Utkarsh Saxena Date: Mon, 20 Nov 2023 12:17:30 +0100 Subject: [PATCH 1/7] Introduce [[clang::coro_lifetimebound]] (cherry picked from co

[clang] [coroutines] Introduce [[clang::coro_lifetimebound]] (PR #72851)

2023-11-21 Thread Utkarsh Saxena via cfe-commits
@@ -0,0 +1,120 @@ +// RUN: %clang_cc1 -triple x86_64-apple-darwin9 %s -std=c++20 -fsyntax-only -verify -Wall -Wextra -Wno-error=unreachable-code -Wno-unused + +#include "Inputs/std-coroutine.h" + +using std::suspend_always; +using std::suspend_never; + +template struct [[clang::

[clang] [coroutines] Introduce [[clang::coro_lifetimebound]] (PR #72851)

2023-11-21 Thread Utkarsh Saxena via cfe-commits
@@ -7581,3 +7580,59 @@ alignment boundary. Its value must be a power of 2, between 1 and 4096 }]; } + +def CoroLifetimeBoundDoc : Documentation { + let Category = DocCatDecl; + let Content = [{ +The ``[[clang::coro_lifetimebound]]`` is a class attribute which can be appli

[clang] [coroutines] Introduce [[clang::coro_lifetimebound]] (PR #72851)

2023-11-21 Thread Haojian Wu via cfe-commits
@@ -0,0 +1,120 @@ +// RUN: %clang_cc1 -triple x86_64-apple-darwin9 %s -std=c++20 -fsyntax-only -verify -Wall -Wextra -Wno-error=unreachable-code -Wno-unused + +#include "Inputs/std-coroutine.h" + +using std::suspend_always; +using std::suspend_never; + +template struct [[clang::

[clang] [coroutines] Introduce [[clang::coro_lifetimebound]] (PR #72851)

2023-11-21 Thread Haojian Wu via cfe-commits
@@ -7581,3 +7580,59 @@ alignment boundary. Its value must be a power of 2, between 1 and 4096 }]; } + +def CoroLifetimeBoundDoc : Documentation { + let Category = DocCatDecl; + let Content = [{ +The ``[[clang::coro_lifetimebound]]`` is a class attribute which can be appli

[clang] [coroutines] Introduce [[clang::coro_lifetimebound]] (PR #72851)

2023-11-21 Thread Haojian Wu via cfe-commits
@@ -0,0 +1,120 @@ +// RUN: %clang_cc1 -triple x86_64-apple-darwin9 %s -std=c++20 -fsyntax-only -verify -Wall -Wextra -Wno-error=unreachable-code -Wno-unused + +#include "Inputs/std-coroutine.h" + +using std::suspend_always; +using std::suspend_never; + +template struct [[clang::

[clang] [coroutines] Introduce [[clang::coro_lifetimebound]] (PR #72851)

2023-11-21 Thread Haojian Wu via cfe-commits
https://github.com/hokein approved this pull request. Thanks, looks good from my side. Some nits. https://github.com/llvm/llvm-project/pull/72851 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cf

[clang] [coroutines] Introduce [[clang::coro_lifetimebound]] (PR #72851)

2023-11-21 Thread Haojian Wu via cfe-commits
@@ -7580,10 +7580,15 @@ static void visitLifetimeBoundArguments(IndirectLocalPath &Path, Expr *Call, if (ObjectArg && implicitObjectParamIsLifetimeBound(Callee)) VisitLifetimeBoundArg(Callee, ObjectArg); + bool checkCoroCall = false; hokein wrote: nit

[clang] [coroutines] Introduce [[clang::coro_lifetimebound]] (PR #72851)

2023-11-21 Thread Haojian Wu via cfe-commits
@@ -7581,3 +7580,59 @@ alignment boundary. Its value must be a power of 2, between 1 and 4096 }]; } + +def CoroLifetimeBoundDoc : Documentation { + let Category = DocCatDecl; + let Content = [{ +The ``[[clang::coro_lifetimebound]]`` is a class attribute which can be appli

[clang] [coroutines] Introduce [[clang::coro_lifetimebound]] (PR #72851)

2023-11-21 Thread Haojian Wu via cfe-commits
https://github.com/hokein edited https://github.com/llvm/llvm-project/pull/72851 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [coroutines] Introduce [[clang::coro_lifetimebound]] (PR #72851)

2023-11-20 Thread Utkarsh Saxena via cfe-commits
https://github.com/usx95 updated https://github.com/llvm/llvm-project/pull/72851 >From 164bf1e94ec05e50be05d085ce2a4381711df11b Mon Sep 17 00:00:00 2001 From: Utkarsh Saxena Date: Mon, 20 Nov 2023 12:17:30 +0100 Subject: [PATCH 1/6] Introduce [[clang::coro_lifetimebound]] (cherry picked from co

[clang] [coroutines] Introduce [[clang::coro_lifetimebound]] (PR #72851)

2023-11-20 Thread Utkarsh Saxena via cfe-commits
https://github.com/usx95 reopened https://github.com/llvm/llvm-project/pull/72851 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [coroutines] Introduce [[clang::coro_lifetimebound]] (PR #72851)

2023-11-20 Thread Utkarsh Saxena via cfe-commits
https://github.com/usx95 updated https://github.com/llvm/llvm-project/pull/72851 >From 164bf1e94ec05e50be05d085ce2a4381711df11b Mon Sep 17 00:00:00 2001 From: Utkarsh Saxena Date: Mon, 20 Nov 2023 12:17:30 +0100 Subject: [PATCH 1/5] Introduce [[clang::coro_lifetimebound]] (cherry picked from co

[clang] [coroutines] Introduce [[clang::coro_lifetimebound]] (PR #72851)

2023-11-20 Thread Utkarsh Saxena via cfe-commits
https://github.com/usx95 updated https://github.com/llvm/llvm-project/pull/72851 >From 28e9fda4b78e1e60287048891cc92bafdef3ac4c Mon Sep 17 00:00:00 2001 From: Utkarsh Saxena Date: Mon, 20 Nov 2023 12:17:30 +0100 Subject: [PATCH 1/5] Introduce [[clang::coro_lifetimebound]] --- clang/include/cla

[clang] [coroutines] Introduce [[clang::coro_lifetimebound]] (PR #72851)

2023-11-20 Thread Utkarsh Saxena via cfe-commits
@@ -7483,7 +7483,6 @@ generation of the other destruction cases, optimizing the above `foo.destroy` to }]; } - usx95 wrote: Acknowledged. Keeping it to match the 1 line space style of the file. https://github.com/llvm/llvm-project/pull/72851 _

[clang] [coroutines] Introduce [[clang::coro_lifetimebound]] (PR #72851)

2023-11-20 Thread Chuanqi Xu via cfe-commits
@@ -7483,7 +7483,6 @@ generation of the other destruction cases, optimizing the above `foo.destroy` to }]; } - ChuanqiXu9 wrote: nit: unnecessary changes. https://github.com/llvm/llvm-project/pull/72851 ___ cfe-

[clang] [coroutines] Introduce [[clang::coro_lifetimebound]] (PR #72851)

2023-11-20 Thread Chuanqi Xu via cfe-commits
@@ -7580,10 +7580,15 @@ static void visitLifetimeBoundArguments(IndirectLocalPath &Path, Expr *Call, if (ObjectArg && implicitObjectParamIsLifetimeBound(Callee)) VisitLifetimeBoundArg(Callee, ObjectArg); + bool checkCoroCall = false; + if (const auto *RD = Callee->get

[clang] [coroutines] Introduce [[clang::coro_lifetimebound]] (PR #72851)

2023-11-20 Thread Chuanqi Xu via cfe-commits
https://github.com/ChuanqiXu9 approved this pull request. LGTM. Please wait for few days in case there are other comments. https://github.com/llvm/llvm-project/pull/72851 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cg

[clang] [coroutines] Introduce [[clang::coro_lifetimebound]] (PR #72851)

2023-11-20 Thread Chuanqi Xu via cfe-commits
https://github.com/ChuanqiXu9 edited https://github.com/llvm/llvm-project/pull/72851 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [coroutines] Introduce [[clang::coro_lifetimebound]] (PR #72851)

2023-11-20 Thread Utkarsh Saxena via cfe-commits
https://github.com/usx95 updated https://github.com/llvm/llvm-project/pull/72851 >From 28e9fda4b78e1e60287048891cc92bafdef3ac4c Mon Sep 17 00:00:00 2001 From: Utkarsh Saxena Date: Mon, 20 Nov 2023 12:17:30 +0100 Subject: [PATCH 1/4] Introduce [[clang::coro_lifetimebound]] --- clang/include/cla

[clang] [coroutines] Introduce [[clang::coro_lifetimebound]] (PR #72851)

2023-11-20 Thread via cfe-commits
llvmbot wrote: @llvm/pr-subscribers-clang Author: Utkarsh Saxena (usx95) Changes Adds attribute `[[clang::coro_lifetimebound]]`. All arguments to a function are considered to be **lifetime bound** if the function returns a type annotated with ``[[clang::coro_lifetimebound]]`` and ``[[c

[clang] [coroutines] Introduce [[clang::coro_lifetimebound]] (PR #72851)

2023-11-20 Thread Utkarsh Saxena via cfe-commits
https://github.com/usx95 ready_for_review https://github.com/llvm/llvm-project/pull/72851 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [coroutines] Introduce [[clang::coro_lifetimebound]] (PR #72851)

2023-11-20 Thread Utkarsh Saxena via cfe-commits
https://github.com/usx95 edited https://github.com/llvm/llvm-project/pull/72851 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [coroutines] Introduce [[clang::coro_lifetimebound]] (PR #72851)

2023-11-20 Thread Utkarsh Saxena via cfe-commits
https://github.com/usx95 updated https://github.com/llvm/llvm-project/pull/72851 >From 28e9fda4b78e1e60287048891cc92bafdef3ac4c Mon Sep 17 00:00:00 2001 From: Utkarsh Saxena Date: Mon, 20 Nov 2023 12:17:30 +0100 Subject: [PATCH 1/3] Introduce [[clang::coro_lifetimebound]] --- clang/include/cla

[clang] [coroutines] Introduce [[clang::coro_lifetimebound]] (PR #72851)

2023-11-20 Thread Utkarsh Saxena via cfe-commits
https://github.com/usx95 updated https://github.com/llvm/llvm-project/pull/72851 >From 28e9fda4b78e1e60287048891cc92bafdef3ac4c Mon Sep 17 00:00:00 2001 From: Utkarsh Saxena Date: Mon, 20 Nov 2023 12:17:30 +0100 Subject: [PATCH 1/2] Introduce [[clang::coro_lifetimebound]] --- clang/include/cla

[clang] [coroutines] Introduce [[clang::coro_lifetimebound]] (PR #72851)

2023-11-20 Thread Utkarsh Saxena via cfe-commits
https://github.com/usx95 created https://github.com/llvm/llvm-project/pull/72851 None >From 28e9fda4b78e1e60287048891cc92bafdef3ac4c Mon Sep 17 00:00:00 2001 From: Utkarsh Saxena Date: Mon, 20 Nov 2023 12:17:30 +0100 Subject: [PATCH] Introduce [[clang::coro_lifetimebound]] --- clang/include/c