]> git.proxmox.com Git - rustc.git/blame - src/test/codegen/async-fn-debug-awaitee-field.rs
New upstream version 1.65.0+dfsg1
[rustc.git] / src / test / codegen / async-fn-debug-awaitee-field.rs
CommitLineData
5e7ed085
FG
1// This test makes sure that the generator field capturing the awaitee in a `.await` expression
2// is called "__awaitee" in debuginfo. This name must not be changed since debuggers and debugger
3// extensions rely on the field having this name.
4
5// ignore-tidy-linelength
6// compile-flags: -C debuginfo=2 --edition=2018
7
8async fn foo() {}
9
10async fn async_fn_test() {
11 foo().await;
12}
13
14// NONMSVC: [[GEN:!.*]] = !DICompositeType(tag: DW_TAG_structure_type, name: "{async_fn_env#0}",
f2b60f7d 15// MSVC: [[GEN:!.*]] = !DICompositeType(tag: DW_TAG_union_type, name: "enum2$<async_fn_debug_awaitee_field::async_fn_test::async_fn_env$0>",
5e7ed085
FG
16// CHECK: [[SUSPEND_STRUCT:!.*]] = !DICompositeType(tag: DW_TAG_structure_type, name: "Suspend0", scope: [[GEN]],
17// CHECK: !DIDerivedType(tag: DW_TAG_member, name: "__awaitee", scope: [[SUSPEND_STRUCT]], {{.*}}, baseType: [[AWAITEE_TYPE:![0-9]*]],
18// NONMSVC: [[AWAITEE_TYPE]] = !DICompositeType(tag: DW_TAG_structure_type, name: "GenFuture<async_fn_debug_awaitee_field::foo::{async_fn_env#0}>",
f2b60f7d 19// MSVC: [[AWAITEE_TYPE]] = !DICompositeType(tag: DW_TAG_structure_type, name: "GenFuture<enum2$<async_fn_debug_awaitee_field::foo::async_fn_env$0> >",
5e7ed085
FG
20
21fn main() {
22 let _fn = async_fn_test();
23}