]> git.proxmox.com Git - rustc.git/blame - src/test/codegen/enum-debug-niche.rs
New upstream version 1.44.1+dfsg1
[rustc.git] / src / test / codegen / enum-debug-niche.rs
CommitLineData
ba9703b0
XL
1// This tests that optimized enum debug info accurately reflects the enum layout.
2// This is ignored for the fallback mode on MSVC due to problems with PDB.
a1dfa0c6 3
ba9703b0 4// ignore-msvc
a1dfa0c6
XL
5
6// compile-flags: -g -C no-prepopulate-passes
7
8// CHECK-LABEL: @main
9// CHECK: {{.*}}DICompositeType{{.*}}tag: DW_TAG_variant_part,{{.*}}discriminator:{{.*}}
10// CHECK: {{.*}}DIDerivedType{{.*}}tag: DW_TAG_member,{{.*}}name: "A",{{.*}}extraData:{{.*}}
11// CHECK: {{.*}}DICompositeType{{.*}}tag: DW_TAG_structure_type,{{.*}}name: "A",{{.*}}
12// CHECK: {{.*}}DIDerivedType{{.*}}tag: DW_TAG_member,{{.*}}name: "B",{{.*}}extraData:{{.*}}
13// CHECK: {{.*}}DICompositeType{{.*}}tag: DW_TAG_structure_type,{{.*}}name: "B",{{.*}}
14// CHECK: {{.*}}DIDerivedType{{.*}}tag: DW_TAG_member,{{.*}}name: "C",{{.*}}extraData:{{.*}}
15// CHECK: {{.*}}DICompositeType{{.*}}tag: DW_TAG_structure_type,{{.*}}name: "C",{{.*}}
16// CHECK-NOT: {{.*}}DIDerivedType{{.*}}name: "D",{{.*}}extraData:{{.*}}
17// CHECK: {{.*}}DIDerivedType{{.*}}tag: DW_TAG_member,{{.*}}name: "D",{{.*}}
18// CHECK: {{.*}}DICompositeType{{.*}}tag: DW_TAG_structure_type,{{.*}}name: "D",{{.*}}
19// CHECK: {{.*}}DIDerivedType{{.*}}tag: DW_TAG_member,{{.*}}flags: DIFlagArtificial{{.*}}
20
21#![allow(dead_code)]
22#![allow(unused_variables)]
23#![allow(unused_assignments)]
24
25enum E { A, B, C, D(bool) }
26
27pub fn main() {
28 let e = E::D(true);
29}