55//
66// ignore-tidy-linelength
77// compile-flags: -C debuginfo=2 --edition=2018
8+ // ignore-msvc
89
910#![ feature( generators, generator_trait) ]
1011use std:: ops:: Generator ;
@@ -26,66 +27,63 @@ async fn async_fn_test() {
2627
2728// FIXME: We need "checksum" to prevent matching with the wrong (duplicate) file
2829// metadata, even when -C codegen-units=1.
29- // CHECK: [[FILE:!.*]] = !DIFile(filename: "{{.*}}/ generator-debug.rs", {{.*}}, checksum:
30+ // CHECK-DAG : [[FILE:!.*]] = !DIFile(filename: "{{.*}}generator-debug.rs", {{.*}}, checksum:
3031
31- // CHECK: [[GEN:!.*]] = !DICompositeType(tag: DW_TAG_structure_type, name: "generator-0", scope: [[FN:![0-9]*]],
32- // CHECK-SAME: flags: DIFlagArtificial
33- // CHECK: [[FN]] = !DINamespace(name: "generator_test"
34- // CHECK: [[VARIANT:!.*]] = !DICompositeType(tag: DW_TAG_variant_part, scope: [[FN]],
32+ // CHECK-DAG: [[GEN_FN:!.*]] = !DINamespace(name: "generator_test"
33+ // CHECK-DAG: [[GEN:!.*]] = !DICompositeType(tag: DW_TAG_structure_type, name: "generator-0", scope: [[GEN_FN]], {{.*}}flags: DIFlagArtificial
34+ // CHECK: [[VARIANT:!.*]] = !DICompositeType(tag: DW_TAG_variant_part, scope: [[GEN_FN]],
3535// CHECK-SAME: flags: DIFlagArtificial
3636// CHECK-SAME: discriminator: [[DISC:![0-9]*]]
3737// CHECK: {{!.*}} = !DIDerivedType(tag: DW_TAG_member, name: "0", scope: [[VARIANT]],
38- // CHECK-SAME: file: [[FILE]], line: 13 ,
38+ // CHECK-SAME: file: [[FILE]], line: 14 ,
3939// CHECK-SAME: flags: DIFlagArtificial
4040// CHECK: {{!.*}} = !DICompositeType(tag: DW_TAG_structure_type, name: "Unresumed", scope: [[GEN]],
4141// CHECK-SAME: flags: DIFlagArtificial
4242// CHECK: {{!.*}} = !DIDerivedType(tag: DW_TAG_member, name: "1", scope: [[VARIANT]],
43- // CHECK-SAME: file: [[FILE]], line: 17 ,
43+ // CHECK-SAME: file: [[FILE]], line: 18 ,
4444// CHECK-SAME: flags: DIFlagArtificial
4545// CHECK: {{!.*}} = !DIDerivedType(tag: DW_TAG_member, name: "2", scope: [[VARIANT]],
46- // CHECK-SAME: file: [[FILE]], line: 17 ,
46+ // CHECK-SAME: file: [[FILE]], line: 18 ,
4747// CHECK-SAME: flags: DIFlagArtificial
4848// CHECK: {{!.*}} = !DIDerivedType(tag: DW_TAG_member, name: "3", scope: [[VARIANT]],
49- // CHECK-SAME: file: [[FILE]], line: 14 ,
49+ // CHECK-SAME: file: [[FILE]], line: 15 ,
5050// CHECK-SAME: flags: DIFlagArtificial
5151// CHECK: {{!.*}} = !DIDerivedType(tag: DW_TAG_member, name: "4", scope: [[VARIANT]],
52- // CHECK-SAME: file: [[FILE]], line: 16 ,
52+ // CHECK-SAME: file: [[FILE]], line: 17 ,
5353// CHECK-SAME: flags: DIFlagArtificial
5454// CHECK: [[S1:!.*]] = !DICompositeType(tag: DW_TAG_structure_type, name: "Suspend1", scope: [[GEN]],
5555// CHECK-SAME: flags: DIFlagArtificial
5656// CHECK: {{!.*}} = !DIDerivedType(tag: DW_TAG_member, name: "s", scope: [[S1]]
5757// CHECK-NOT: flags: DIFlagArtificial
5858// CHECK-SAME: )
59- // CHECK: [[DISC]] = !DIDerivedType(tag: DW_TAG_member, name: "__state", scope: [[FN ]],
59+ // CHECK: [[DISC]] = !DIDerivedType(tag: DW_TAG_member, name: "__state", scope: [[GEN_FN ]],
6060// CHECK-SAME: flags: DIFlagArtificial
6161
62- // CHECK: [[GEN:!.*]] = !DICompositeType(tag: DW_TAG_structure_type, name: "generator-0", scope: [[FN:![0-9]*]],
63- // CHECK-SAME: flags: DIFlagArtificial
64- // CHECK: [[FN]] = !DINamespace(name: "async_fn_test"
65- // CHECK: [[VARIANT:!.*]] = !DICompositeType(tag: DW_TAG_variant_part, scope: [[FN]],
62+ // CHECK-DAG: [[GEN:!.*]] = !DICompositeType(tag: DW_TAG_structure_type, name: "generator-0", scope: [[ASYNC_FN:![0-9]*]], {{.*}}flags: DIFlagArtificial
63+ // CHECK: [[VARIANT:!.*]] = !DICompositeType(tag: DW_TAG_variant_part, scope: [[ASYNC_FN]],
6664// CHECK-SAME: flags: DIFlagArtificial
6765// CHECK-SAME: discriminator: [[DISC:![0-9]*]]
6866// CHECK: {{!.*}} = !DIDerivedType(tag: DW_TAG_member, name: "0", scope: [[VARIANT]],
69- // CHECK-SAME: file: [[FILE]], line: 21 ,
67+ // CHECK-SAME: file: [[FILE]], line: 22 ,
7068// CHECK-SAME: flags: DIFlagArtificial
7169// CHECK: {{!.*}} = !DIDerivedType(tag: DW_TAG_member, name: "1", scope: [[VARIANT]],
72- // CHECK-SAME: file: [[FILE]], line: 25 ,
70+ // CHECK-SAME: file: [[FILE]], line: 26 ,
7371// CHECK-SAME: flags: DIFlagArtificial
7472// CHECK: {{!.*}} = !DIDerivedType(tag: DW_TAG_member, name: "2", scope: [[VARIANT]],
75- // CHECK-SAME: file: [[FILE]], line: 25 ,
73+ // CHECK-SAME: file: [[FILE]], line: 26 ,
7674// CHECK-SAME: flags: DIFlagArtificial
7775// CHECK: {{!.*}} = !DIDerivedType(tag: DW_TAG_member, name: "3", scope: [[VARIANT]],
78- // CHECK-SAME: file: [[FILE]], line: 22 ,
76+ // CHECK-SAME: file: [[FILE]], line: 23 ,
7977// CHECK-SAME: flags: DIFlagArtificial
8078// CHECK: {{!.*}} = !DIDerivedType(tag: DW_TAG_member, name: "4", scope: [[VARIANT]],
81- // CHECK-SAME: file: [[FILE]], line: 24 ,
79+ // CHECK-SAME: file: [[FILE]], line: 25 ,
8280// CHECK-SAME: flags: DIFlagArtificial
8381// CHECK: [[S1:!.*]] = !DICompositeType(tag: DW_TAG_structure_type, name: "Suspend1", scope: [[GEN]],
8482// CHECK-SAME: flags: DIFlagArtificial
8583// CHECK: {{!.*}} = !DIDerivedType(tag: DW_TAG_member, name: "s", scope: [[S1]]
8684// CHECK-NOT: flags: DIFlagArtificial
8785// CHECK-SAME: )
88- // CHECK: [[DISC]] = !DIDerivedType(tag: DW_TAG_member, name: "__state", scope: [[FN ]],
86+ // CHECK: [[DISC]] = !DIDerivedType(tag: DW_TAG_member, name: "__state", scope: [[ASYNC_FN ]],
8987// CHECK-SAME: flags: DIFlagArtificial
9088
9189fn main ( ) {
0 commit comments