| // This tests that optimized enum debug info accurately reflects the enum layout. | |
| // This is ignored for the fallback mode on MSVC due to problems with PDB. | |
| //@ ignore-msvc | |
| //@ ignore-wasi wasi codegens the main symbol differently | |
| //@ compile-flags: -g -C no-prepopulate-passes | |
| // CHECK-LABEL: @main | |
| // CHECK: {{.*}}DICompositeType{{.*}}tag: DW_TAG_variant_part,{{.*}}discriminator:{{.*}} | |
| // CHECK: {{.*}}DIDerivedType{{.*}}tag: DW_TAG_member,{{.*}}name: "A",{{.*}}extraData:{{.*}} | |
| // CHECK: {{.*}}DICompositeType{{.*}}tag: DW_TAG_structure_type,{{.*}}name: "A",{{.*}} | |
| // CHECK: {{.*}}DIDerivedType{{.*}}tag: DW_TAG_member,{{.*}}name: "B",{{.*}}extraData:{{.*}} | |
| // CHECK: {{.*}}DICompositeType{{.*}}tag: DW_TAG_structure_type,{{.*}}name: "B",{{.*}} | |
| // CHECK: {{.*}}DIDerivedType{{.*}}tag: DW_TAG_member,{{.*}}name: "C",{{.*}}extraData:{{.*}} | |
| // CHECK: {{.*}}DICompositeType{{.*}}tag: DW_TAG_structure_type,{{.*}}name: "C",{{.*}} | |
| // CHECK-NOT: {{.*}}DIDerivedType{{.*}}name: "D",{{.*}}extraData:{{.*}} | |
| // CHECK: {{.*}}DIDerivedType{{.*}}tag: DW_TAG_member,{{.*}}name: "D",{{.*}} | |
| // CHECK: {{.*}}DICompositeType{{.*}}tag: DW_TAG_structure_type,{{.*}}name: "D",{{.*}} | |
| // CHECK: {{.*}}DIDerivedType{{.*}}tag: DW_TAG_member,{{.*}}flags: DIFlagArtificial{{.*}} | |
| #![allow(dead_code)] | |
| #![allow(unused_variables)] | |
| #![allow(unused_assignments)] | |
| enum E { | |
| A, | |
| B, | |
| C, | |
| D(bool), | |
| } | |
| pub fn main() { | |
| let e = E::D(true); | |
| } |