error: layout_of(Univariant) = Layout {
           size: Size(4 bytes),
           align: AbiAndPrefAlign {
               abi: Align(4 bytes),
               pref: $SOME_ALIGN,
           },
           abi: Uninhabited,
           fields: Arbitrary {
               offsets: [
                   Size(0 bytes),
               ],
               memory_index: [
                   0,
               ],
           },
           largest_niche: Some(
               Niche {
                   offset: Size(0 bytes),
                   value: Int(
                       I32,
                       false,
                   ),
                   valid_range: 0..=0,
               },
           ),
           variants: Multiple {
               tag: Initialized {
                   value: Int(
                       I32,
                       false,
                   ),
                   valid_range: 0..=0,
               },
               tag_encoding: Direct,
               tag_field: 0,
               variants: [
                   Layout {
                       size: Size(4 bytes),
                       align: AbiAndPrefAlign {
                           abi: Align(4 bytes),
                           pref: $SOME_ALIGN,
                       },
                       abi: Uninhabited,
                       fields: Arbitrary {
                           offsets: [
                               Size(4 bytes),
                           ],
                           memory_index: [
                               0,
                           ],
                       },
                       largest_niche: None,
                       variants: Single {
                           index: 0,
                       },
                       max_repr_align: None,
                       unadjusted_abi_align: Align(4 bytes),
                   },
               ],
           },
           max_repr_align: None,
           unadjusted_abi_align: Align(4 bytes),
       }
  --> $DIR/repr-c-dead-variants.rs:38:1
   |
LL | enum Univariant {
   | ^^^^^^^^^^^^^^^

error: layout_of(TwoVariants) = Layout {
           size: Size(8 bytes),
           align: AbiAndPrefAlign {
               abi: Align(4 bytes),
               pref: $SOME_ALIGN,
           },
           abi: ScalarPair(
               Initialized {
                   value: Int(
                       I32,
                       false,
                   ),
                   valid_range: 0..=1,
               },
               Union {
                   value: Int(
                       I8,
                       false,
                   ),
               },
           ),
           fields: Arbitrary {
               offsets: [
                   Size(0 bytes),
               ],
               memory_index: [
                   0,
               ],
           },
           largest_niche: Some(
               Niche {
                   offset: Size(0 bytes),
                   value: Int(
                       I32,
                       false,
                   ),
                   valid_range: 0..=1,
               },
           ),
           variants: Multiple {
               tag: Initialized {
                   value: Int(
                       I32,
                       false,
                   ),
                   valid_range: 0..=1,
               },
               tag_encoding: Direct,
               tag_field: 0,
               variants: [
                   Layout {
                       size: Size(4 bytes),
                       align: AbiAndPrefAlign {
                           abi: Align(4 bytes),
                           pref: $SOME_ALIGN,
                       },
                       abi: Uninhabited,
                       fields: Arbitrary {
                           offsets: [
                               Size(4 bytes),
                           ],
                           memory_index: [
                               0,
                           ],
                       },
                       largest_niche: None,
                       variants: Single {
                           index: 0,
                       },
                       max_repr_align: None,
                       unadjusted_abi_align: Align(4 bytes),
                   },
                   Layout {
                       size: Size(8 bytes),
                       align: AbiAndPrefAlign {
                           abi: Align(4 bytes),
                           pref: $SOME_ALIGN,
                       },
                       abi: ScalarPair(
                           Initialized {
                               value: Int(
                                   I32,
                                   false,
                               ),
                               valid_range: 0..=1,
                           },
                           Union {
                               value: Int(
                                   I8,
                                   false,
                               ),
                           },
                       ),
                       fields: Arbitrary {
                           offsets: [
                               Size(4 bytes),
                           ],
                           memory_index: [
                               0,
                           ],
                       },
                       largest_niche: None,
                       variants: Single {
                           index: 1,
                       },
                       max_repr_align: None,
                       unadjusted_abi_align: Align(4 bytes),
                   },
               ],
           },
           max_repr_align: None,
           unadjusted_abi_align: Align(4 bytes),
       }
  --> $DIR/repr-c-dead-variants.rs:45:1
   |
LL | enum TwoVariants {
   | ^^^^^^^^^^^^^^^^

error: layout_of(DeadBranchHasOtherField) = Layout {
           size: Size(16 bytes),
           align: AbiAndPrefAlign {
               abi: Align(8 bytes),
               pref: $SOME_ALIGN,
           },
           abi: Aggregate {
               sized: true,
           },
           fields: Arbitrary {
               offsets: [
                   Size(0 bytes),
               ],
               memory_index: [
                   0,
               ],
           },
           largest_niche: Some(
               Niche {
                   offset: Size(0 bytes),
                   value: Int(
                       I32,
                       false,
                   ),
                   valid_range: 0..=1,
               },
           ),
           variants: Multiple {
               tag: Initialized {
                   value: Int(
                       I32,
                       false,
                   ),
                   valid_range: 0..=1,
               },
               tag_encoding: Direct,
               tag_field: 0,
               variants: [
                   Layout {
                       size: Size(16 bytes),
                       align: AbiAndPrefAlign {
                           abi: Align(8 bytes),
                           pref: $SOME_ALIGN,
                       },
                       abi: Uninhabited,
                       fields: Arbitrary {
                           offsets: [
                               Size(8 bytes),
                               Size(8 bytes),
                           ],
                           memory_index: [
                               0,
                               1,
                           ],
                       },
                       largest_niche: None,
                       variants: Single {
                           index: 0,
                       },
                       max_repr_align: Some(
                           Align(8 bytes),
                       ),
                       unadjusted_abi_align: Align(8 bytes),
                   },
                   Layout {
                       size: Size(16 bytes),
                       align: AbiAndPrefAlign {
                           abi: Align(8 bytes),
                           pref: $SOME_ALIGN,
                       },
                       abi: Aggregate {
                           sized: true,
                       },
                       fields: Arbitrary {
                           offsets: [
                               Size(8 bytes),
                           ],
                           memory_index: [
                               0,
                           ],
                       },
                       largest_niche: None,
                       variants: Single {
                           index: 1,
                       },
                       max_repr_align: None,
                       unadjusted_abi_align: Align(8 bytes),
                   },
               ],
           },
           max_repr_align: Some(
               Align(8 bytes),
           ),
           unadjusted_abi_align: Align(8 bytes),
       }
  --> $DIR/repr-c-dead-variants.rs:57:1
   |
LL | enum DeadBranchHasOtherField {
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: aborting due to 3 previous errors

