]>
Commit | Line | Data |
---|---|---|
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 | ||
8 | async fn foo() {} | |
9 | ||
10 | async 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 | |
21 | fn main() { | |
22 | let _fn = async_fn_test(); | |
23 | } |