|  | // 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); | 
|  | } |