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

error: layout_of(TwoVariants) = Layout {
           size: Size(2 bytes),
           align: AbiAndPrefAlign {
               abi: Align(1 bytes),
               pref: $SOME_ALIGN,
           },
           abi: ScalarPair(
               Initialized {
                   value: Int(
                       I8,
                       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(
                       I8,
                       false,
                   ),
                   valid_range: 0..=1,
               },
           ),
           variants: Multiple {
               tag: Initialized {
                   value: Int(
                       I8,
                       false,
                   ),
                   valid_range: 0..=1,
               },
               tag_encoding: Direct,
               tag_field: 0,
               variants: [
                   Layout {
                       size: Size(1 bytes),
                       align: AbiAndPrefAlign {
                           abi: Align(1 bytes),
                           pref: $SOME_ALIGN,
                       },
                       abi: Uninhabited,
                       fields: Arbitrary {
                           offsets: [
                               Size(1 bytes),
                           ],
                           memory_index: [
                               0,
                           ],
                       },
                       largest_niche: None,
                       variants: Single {
                           index: 0,
                       },
                       max_repr_align: None,
                       unadjusted_abi_align: Align(1 bytes),
                   },
                   Layout {
                       size: Size(2 bytes),
                       align: AbiAndPrefAlign {
                           abi: Align(1 bytes),
                           pref: $SOME_ALIGN,
                       },
                       abi: ScalarPair(
                           Initialized {
                               value: Int(
                                   I8,
                                   false,
                               ),
                               valid_range: 0..=1,
                           },
                           Union {
                               value: Int(
                                   I8,
                                   false,
                               ),
                           },
                       ),
                       fields: Arbitrary {
                           offsets: [
                               Size(1 bytes),
                           ],
                           memory_index: [
                               0,
                           ],
                       },
                       largest_niche: None,
                       variants: Single {
                           index: 1,
                       },
                       max_repr_align: None,
                       unadjusted_abi_align: Align(1 bytes),
                   },
               ],
           },
           max_repr_align: None,
           unadjusted_abi_align: Align(1 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(
                       I8,
                       false,
                   ),
                   valid_range: 0..=1,
               },
           ),
           variants: Multiple {
               tag: Initialized {
                   value: Int(
                       I8,
                       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

