5
5
//
6
6
// ignore-tidy-linelength
7
7
// compile-flags: -C debuginfo=2 --edition=2018
8
+ // ignore-msvc
8
9
9
10
#![ feature( generators, generator_trait) ]
10
11
use std:: ops:: Generator ;
@@ -26,66 +27,63 @@ async fn async_fn_test() {
26
27
27
28
// FIXME: We need "checksum" to prevent matching with the wrong (duplicate) file
28
29
// 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:
30
31
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]],
35
35
// CHECK-SAME: flags: DIFlagArtificial
36
36
// CHECK-SAME: discriminator: [[DISC:![0-9]*]]
37
37
// CHECK: {{!.*}} = !DIDerivedType(tag: DW_TAG_member, name: "0", scope: [[VARIANT]],
38
- // CHECK-SAME: file: [[FILE]], line: 13 ,
38
+ // CHECK-SAME: file: [[FILE]], line: 14 ,
39
39
// CHECK-SAME: flags: DIFlagArtificial
40
40
// CHECK: {{!.*}} = !DICompositeType(tag: DW_TAG_structure_type, name: "Unresumed", scope: [[GEN]],
41
41
// CHECK-SAME: flags: DIFlagArtificial
42
42
// CHECK: {{!.*}} = !DIDerivedType(tag: DW_TAG_member, name: "1", scope: [[VARIANT]],
43
- // CHECK-SAME: file: [[FILE]], line: 17 ,
43
+ // CHECK-SAME: file: [[FILE]], line: 18 ,
44
44
// CHECK-SAME: flags: DIFlagArtificial
45
45
// CHECK: {{!.*}} = !DIDerivedType(tag: DW_TAG_member, name: "2", scope: [[VARIANT]],
46
- // CHECK-SAME: file: [[FILE]], line: 17 ,
46
+ // CHECK-SAME: file: [[FILE]], line: 18 ,
47
47
// CHECK-SAME: flags: DIFlagArtificial
48
48
// CHECK: {{!.*}} = !DIDerivedType(tag: DW_TAG_member, name: "3", scope: [[VARIANT]],
49
- // CHECK-SAME: file: [[FILE]], line: 14 ,
49
+ // CHECK-SAME: file: [[FILE]], line: 15 ,
50
50
// CHECK-SAME: flags: DIFlagArtificial
51
51
// CHECK: {{!.*}} = !DIDerivedType(tag: DW_TAG_member, name: "4", scope: [[VARIANT]],
52
- // CHECK-SAME: file: [[FILE]], line: 16 ,
52
+ // CHECK-SAME: file: [[FILE]], line: 17 ,
53
53
// CHECK-SAME: flags: DIFlagArtificial
54
54
// CHECK: [[S1:!.*]] = !DICompositeType(tag: DW_TAG_structure_type, name: "Suspend1", scope: [[GEN]],
55
55
// CHECK-SAME: flags: DIFlagArtificial
56
56
// CHECK: {{!.*}} = !DIDerivedType(tag: DW_TAG_member, name: "s", scope: [[S1]]
57
57
// CHECK-NOT: flags: DIFlagArtificial
58
58
// 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 ]],
60
60
// CHECK-SAME: flags: DIFlagArtificial
61
61
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]],
66
64
// CHECK-SAME: flags: DIFlagArtificial
67
65
// CHECK-SAME: discriminator: [[DISC:![0-9]*]]
68
66
// CHECK: {{!.*}} = !DIDerivedType(tag: DW_TAG_member, name: "0", scope: [[VARIANT]],
69
- // CHECK-SAME: file: [[FILE]], line: 21 ,
67
+ // CHECK-SAME: file: [[FILE]], line: 22 ,
70
68
// CHECK-SAME: flags: DIFlagArtificial
71
69
// CHECK: {{!.*}} = !DIDerivedType(tag: DW_TAG_member, name: "1", scope: [[VARIANT]],
72
- // CHECK-SAME: file: [[FILE]], line: 25 ,
70
+ // CHECK-SAME: file: [[FILE]], line: 26 ,
73
71
// CHECK-SAME: flags: DIFlagArtificial
74
72
// CHECK: {{!.*}} = !DIDerivedType(tag: DW_TAG_member, name: "2", scope: [[VARIANT]],
75
- // CHECK-SAME: file: [[FILE]], line: 25 ,
73
+ // CHECK-SAME: file: [[FILE]], line: 26 ,
76
74
// CHECK-SAME: flags: DIFlagArtificial
77
75
// CHECK: {{!.*}} = !DIDerivedType(tag: DW_TAG_member, name: "3", scope: [[VARIANT]],
78
- // CHECK-SAME: file: [[FILE]], line: 22 ,
76
+ // CHECK-SAME: file: [[FILE]], line: 23 ,
79
77
// CHECK-SAME: flags: DIFlagArtificial
80
78
// CHECK: {{!.*}} = !DIDerivedType(tag: DW_TAG_member, name: "4", scope: [[VARIANT]],
81
- // CHECK-SAME: file: [[FILE]], line: 24 ,
79
+ // CHECK-SAME: file: [[FILE]], line: 25 ,
82
80
// CHECK-SAME: flags: DIFlagArtificial
83
81
// CHECK: [[S1:!.*]] = !DICompositeType(tag: DW_TAG_structure_type, name: "Suspend1", scope: [[GEN]],
84
82
// CHECK-SAME: flags: DIFlagArtificial
85
83
// CHECK: {{!.*}} = !DIDerivedType(tag: DW_TAG_member, name: "s", scope: [[S1]]
86
84
// CHECK-NOT: flags: DIFlagArtificial
87
85
// 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 ]],
89
87
// CHECK-SAME: flags: DIFlagArtificial
90
88
91
89
fn main ( ) {
0 commit comments