[clang] [CIR] Add token type and none token attribute for coroutine intrinsics (PR #194515)

via cfe-commits cfe-commits at lists.llvm.org
Mon Apr 27 20:11:46 PDT 2026


github-actions[bot] wrote:

<!--PREMERGE ADVISOR COMMENT: Linux-->
# :penguin: Linux x64 Test Results

* 89056 tests passed
* 828 tests skipped
* 2 tests failed

## Failed Tests
(click on a test name to see its output)

### Clang
<details>
<summary>Clang.CIR/CodeGen/coro-task.cpp</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/clang -cc1 -internal-isystem /home/gha/actions-runner/_work/llvm-project/llvm-project/build/lib/clang/23/include -nostdsysteminc -std=c++20 -triple x86_64-unknown-linux-gnu -fclangir -emit-cir /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CIR/CodeGen/coro-task.cpp -o /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/test/CIR/CodeGen/Output/coro-task.cpp.tmp.cir
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/clang -cc1 -internal-isystem /home/gha/actions-runner/_work/llvm-project/llvm-project/build/lib/clang/23/include -nostdsysteminc -std=c++20 -triple x86_64-unknown-linux-gnu -fclangir -emit-cir /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CIR/CodeGen/coro-task.cpp -o /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/test/CIR/CodeGen/Output/coro-task.cpp.tmp.cir
# note: command had no output on stdout or stderr
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck --input-file=/home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/test/CIR/CodeGen/Output/coro-task.cpp.tmp.cir /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CIR/CodeGen/coro-task.cpp -check-prefix=CIR
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck --input-file=/home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/test/CIR/CodeGen/Output/coro-task.cpp.tmp.cir /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CIR/CodeGen/coro-task.cpp -check-prefix=CIR
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CIR/CodeGen/coro-task.cpp:340:9: error: CIR: expected string not found in input
# | // CIR: cir.call @__builtin_coro_end(%[[CoroEndArg0]], %[[CoroEndArg1]], %[[CoroEndArg2]])
# |         ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/test/CIR/CodeGen/Output/coro-task.cpp.tmp.cir:288:46: note: scanning from here
# |  %19 = cir.const #cir.token_none : !cir.token loc(#loc54)
# |                                              ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/test/CIR/CodeGen/Output/coro-task.cpp.tmp.cir:288:46: note: with "CoroEndArg0" equal to "11"
# |  %19 = cir.const #cir.token_none : !cir.token loc(#loc54)
# |                                              ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/test/CIR/CodeGen/Output/coro-task.cpp.tmp.cir:288:46: note: with "CoroEndArg1" equal to "19"
# |  %19 = cir.const #cir.token_none : !cir.token loc(#loc54)
# |                                              ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/test/CIR/CodeGen/Output/coro-task.cpp.tmp.cir:288:46: note: with "CoroEndArg2" equal to "19"
# |  %19 = cir.const #cir.token_none : !cir.token loc(#loc54)
# |                                              ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/test/CIR/CodeGen/Output/coro-task.cpp.tmp.cir:289:2: note: possible intended match here
# |  cir.call @__builtin_coro_end(%17, %18, %19) : (!cir.ptr<!void>, !cir.bool, !cir.token) -> () loc(#loc54)
# |  ^
# | 
# | Input file: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/test/CIR/CodeGen/Output/coro-task.cpp.tmp.cir
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CIR/CodeGen/coro-task.cpp
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |              .
# |              .
# |              .
# |            283:  } loc(#loc56) 
# |            284:  cir.yield loc(#loc38) 
# |            285:  } loc(#loc38) 
# |            286:  %17 = cir.const #cir.ptr<null> : !cir.ptr<!void> loc(#loc54) 
# |            287:  %18 = cir.const #false loc(#loc54) 
# |            288:  %19 = cir.const #cir.token_none : !cir.token loc(#loc54) 
# | check:340'0                                                  X~~~~~~~~~~~~ error: no match found
# | check:340'1                                                                with "CoroEndArg0" equal to "11"
# | check:340'2                                                                with "CoroEndArg1" equal to "19"
# | check:340'3                                                                with "CoroEndArg2" equal to "19"
# |            289:  cir.call @__builtin_coro_end(%17, %18, %19) : (!cir.ptr<!void>, !cir.bool, !cir.token) -> () loc(#loc54) 
# | check:340'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:340'4      ?                                                                                                         possible intended match
# |            290:  %20 = cir.load %1 : !cir.ptr<!rec_folly3A3Acoro3A3ATask3Cint3E>, !rec_folly3A3Acoro3A3ATask3Cint3E loc(#loc56) 
# | check:340'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            291:  cir.return %20 : !rec_folly3A3Acoro3A3ATask3Cint3E loc(#loc56) 
# | check:340'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            292:  } loc(#loc252) 
# | check:340'0     ~~~~~~~~~~~~~~~~
# |            293:  cir.func private @_ZNSt8optionalIN5folly4coro4TaskIiEEEC1Ev(!cir.ptr<!rec_std3A3Aoptional3Cfolly3A3Acoro3A3ATask3Cint3E3E> {llvm.align = 1 : i64, llvm.dereferenceable = 1 : i64, llvm.nonnull, llvm.noundef}) special_member<#cir.cxx_ctor<!rec_std3A3Aoptional3Cfolly3A3Acoro3A3ATask3Cint3E3E, default>> loc(#loc255) 
# | check:340'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            294:  cir.func private @_ZNSt6stringC1EPKc(!cir.ptr<!rec_std3A3Astring> {llvm.align = 1 : i64, llvm.dereferenceable = 1 : i64, llvm.nonnull, llvm.noundef}, !cir.ptr<!s8i> {llvm.noundef}) special_member<#cir.cxx_ctor<!rec_std3A3Astring, custom>> loc(#loc256) 
# | check:340'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>
<details>
<summary>Clang.CIR/CodeGen/coro-task.cpp</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/clang -cc1 -internal-isystem /home/gha/actions-runner/_work/llvm-project/llvm-project/build/lib/clang/23/include -nostdsysteminc -std=c++20 -triple x86_64-unknown-linux-gnu -fclangir -emit-cir /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CIR/CodeGen/coro-task.cpp -o /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/test/CIR/CodeGen/Output/coro-task.cpp.tmp.cir
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/clang -cc1 -internal-isystem /home/gha/actions-runner/_work/llvm-project/llvm-project/build/lib/clang/23/include -nostdsysteminc -std=c++20 -triple x86_64-unknown-linux-gnu -fclangir -emit-cir /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CIR/CodeGen/coro-task.cpp -o /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/test/CIR/CodeGen/Output/coro-task.cpp.tmp.cir
# note: command had no output on stdout or stderr
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck --input-file=/home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/test/CIR/CodeGen/Output/coro-task.cpp.tmp.cir /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CIR/CodeGen/coro-task.cpp -check-prefix=CIR
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck --input-file=/home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/test/CIR/CodeGen/Output/coro-task.cpp.tmp.cir /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CIR/CodeGen/coro-task.cpp -check-prefix=CIR
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CIR/CodeGen/coro-task.cpp:340:9: error: CIR: expected string not found in input
# | // CIR: cir.call @__builtin_coro_end(%[[CoroEndArg0]], %[[CoroEndArg1]], %[[CoroEndArg2]])
# |         ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/test/CIR/CodeGen/Output/coro-task.cpp.tmp.cir:288:46: note: scanning from here
# |  %19 = cir.const #cir.token_none : !cir.token loc(#loc54)
# |                                              ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/test/CIR/CodeGen/Output/coro-task.cpp.tmp.cir:288:46: note: with "CoroEndArg0" equal to "11"
# |  %19 = cir.const #cir.token_none : !cir.token loc(#loc54)
# |                                              ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/test/CIR/CodeGen/Output/coro-task.cpp.tmp.cir:288:46: note: with "CoroEndArg1" equal to "19"
# |  %19 = cir.const #cir.token_none : !cir.token loc(#loc54)
# |                                              ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/test/CIR/CodeGen/Output/coro-task.cpp.tmp.cir:288:46: note: with "CoroEndArg2" equal to "19"
# |  %19 = cir.const #cir.token_none : !cir.token loc(#loc54)
# |                                              ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/test/CIR/CodeGen/Output/coro-task.cpp.tmp.cir:289:2: note: possible intended match here
# |  cir.call @__builtin_coro_end(%17, %18, %19) : (!cir.ptr<!void>, !cir.bool, !cir.token) -> () loc(#loc54)
# |  ^
# | 
# | Input file: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/test/CIR/CodeGen/Output/coro-task.cpp.tmp.cir
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CIR/CodeGen/coro-task.cpp
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |              .
# |              .
# |              .
# |            283:  } loc(#loc56) 
# |            284:  cir.yield loc(#loc38) 
# |            285:  } loc(#loc38) 
# |            286:  %17 = cir.const #cir.ptr<null> : !cir.ptr<!void> loc(#loc54) 
# |            287:  %18 = cir.const #false loc(#loc54) 
# |            288:  %19 = cir.const #cir.token_none : !cir.token loc(#loc54) 
# | check:340'0                                                  X~~~~~~~~~~~~ error: no match found
# | check:340'1                                                                with "CoroEndArg0" equal to "11"
# | check:340'2                                                                with "CoroEndArg1" equal to "19"
# | check:340'3                                                                with "CoroEndArg2" equal to "19"
# |            289:  cir.call @__builtin_coro_end(%17, %18, %19) : (!cir.ptr<!void>, !cir.bool, !cir.token) -> () loc(#loc54) 
# | check:340'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:340'4      ?                                                                                                         possible intended match
# |            290:  %20 = cir.load %1 : !cir.ptr<!rec_folly3A3Acoro3A3ATask3Cint3E>, !rec_folly3A3Acoro3A3ATask3Cint3E loc(#loc56) 
# | check:340'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            291:  cir.return %20 : !rec_folly3A3Acoro3A3ATask3Cint3E loc(#loc56) 
# | check:340'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            292:  } loc(#loc252) 
# | check:340'0     ~~~~~~~~~~~~~~~~
# |            293:  cir.func private @_ZNSt8optionalIN5folly4coro4TaskIiEEEC1Ev(!cir.ptr<!rec_std3A3Aoptional3Cfolly3A3Acoro3A3ATask3Cint3E3E> {llvm.align = 1 : i64, llvm.dereferenceable = 1 : i64, llvm.nonnull, llvm.noundef}) special_member<#cir.cxx_ctor<!rec_std3A3Aoptional3Cfolly3A3Acoro3A3ATask3Cint3E3E, default>> loc(#loc255) 
# | check:340'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            294:  cir.func private @_ZNSt6stringC1EPKc(!cir.ptr<!rec_std3A3Astring> {llvm.align = 1 : i64, llvm.dereferenceable = 1 : i64, llvm.nonnull, llvm.noundef}, !cir.ptr<!s8i> {llvm.noundef}) special_member<#cir.cxx_ctor<!rec_std3A3Astring, custom>> loc(#loc256) 
# | check:340'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>

If these failures are unrelated to your changes (for example tests are broken or flaky at HEAD), please open an issue at https://github.com/llvm/llvm-project/issues and add the `infrastructure` label.

https://github.com/llvm/llvm-project/pull/194515


More information about the cfe-commits mailing list