error: unrecognized representation hint
  --> tests/ui-stable/enum.rs:19:8
   |
19 | #[repr("foo")]
   |        ^^^^^

error: unrecognized representation hint
  --> tests/ui-stable/enum.rs:25:8
   |
25 | #[repr(foo)]
   |        ^^^

error: unsupported representation for deriving FromBytes, AsBytes, or Unaligned on an enum
  --> tests/ui-stable/enum.rs:31:8
   |
31 | #[repr(transparent)]
   |        ^^^^^^^^^^^

error: conflicting representation hints
  --> tests/ui-stable/enum.rs:37:1
   |
37 | #[repr(u8, u16)]
   | ^

error: must have a non-align #[repr(...)] attribute in order to guarantee this type's memory layout
  --> tests/ui-stable/enum.rs:42:22
   |
42 | #[derive(FromZeroes, FromBytes)]
   |                      ^^^^^^^^^
   |
   = note: this error originates in the derive macro `FromBytes` (in Nightly builds, run with -Z macro-backtrace for more info)

error: only C-like enums can implement FromZeroes
  --> tests/ui-stable/enum.rs:52:1
   |
52 | / enum FromZeroes1 {
53 | |     A(u8),
54 | | }
   | |_^

error: only C-like enums can implement FromZeroes
  --> tests/ui-stable/enum.rs:57:1
   |
57 | / enum FromZeroes2 {
58 | |     A,
59 | |     B(u8),
60 | | }
   | |_^

error: FromZeroes only supported on enums with a variant that has a discriminant of `0`
  --> tests/ui-stable/enum.rs:63:1
   |
63 | / enum FromZeroes3 {
64 | |     A = 1,
65 | |     B,
66 | | }
   | |_^

error: FromBytes requires repr of "u8", "u16", "i8", or "i16"
  --> tests/ui-stable/enum.rs:73:8
   |
73 | #[repr(C)]
   |        ^

error: FromBytes requires repr of "u8", "u16", "i8", or "i16"
  --> tests/ui-stable/enum.rs:79:8
   |
79 | #[repr(usize)]
   |        ^^^^^

error: FromBytes requires repr of "u8", "u16", "i8", or "i16"
  --> tests/ui-stable/enum.rs:85:8
   |
85 | #[repr(isize)]
   |        ^^^^^

error: FromBytes requires repr of "u8", "u16", "i8", or "i16"
  --> tests/ui-stable/enum.rs:91:8
   |
91 | #[repr(u32)]
   |        ^^^

error: FromBytes requires repr of "u8", "u16", "i8", or "i16"
  --> tests/ui-stable/enum.rs:97:8
   |
97 | #[repr(i32)]
   |        ^^^

error: FromBytes requires repr of "u8", "u16", "i8", or "i16"
   --> tests/ui-stable/enum.rs:103:8
    |
103 | #[repr(u64)]
    |        ^^^

error: FromBytes requires repr of "u8", "u16", "i8", or "i16"
   --> tests/ui-stable/enum.rs:109:8
    |
109 | #[repr(i64)]
    |        ^^^

error: Unaligned requires repr of "u8" or "i8", and no alignment (i.e., repr(align(N > 1)))
   --> tests/ui-stable/enum.rs:119:8
    |
119 | #[repr(C)]
    |        ^

error: Unaligned requires repr of "u8" or "i8", and no alignment (i.e., repr(align(N > 1)))
   --> tests/ui-stable/enum.rs:125:8
    |
125 | #[repr(u16)]
    |        ^^^

error: Unaligned requires repr of "u8" or "i8", and no alignment (i.e., repr(align(N > 1)))
   --> tests/ui-stable/enum.rs:131:8
    |
131 | #[repr(i16)]
    |        ^^^

error: Unaligned requires repr of "u8" or "i8", and no alignment (i.e., repr(align(N > 1)))
   --> tests/ui-stable/enum.rs:137:8
    |
137 | #[repr(u32)]
    |        ^^^

error: Unaligned requires repr of "u8" or "i8", and no alignment (i.e., repr(align(N > 1)))
   --> tests/ui-stable/enum.rs:143:8
    |
143 | #[repr(i32)]
    |        ^^^

error: Unaligned requires repr of "u8" or "i8", and no alignment (i.e., repr(align(N > 1)))
   --> tests/ui-stable/enum.rs:149:8
    |
149 | #[repr(u64)]
    |        ^^^

error: Unaligned requires repr of "u8" or "i8", and no alignment (i.e., repr(align(N > 1)))
   --> tests/ui-stable/enum.rs:155:8
    |
155 | #[repr(i64)]
    |        ^^^

error: Unaligned requires repr of "u8" or "i8", and no alignment (i.e., repr(align(N > 1)))
   --> tests/ui-stable/enum.rs:161:8
    |
161 | #[repr(usize)]
    |        ^^^^^

error: Unaligned requires repr of "u8" or "i8", and no alignment (i.e., repr(align(N > 1)))
   --> tests/ui-stable/enum.rs:167:8
    |
167 | #[repr(isize)]
    |        ^^^^^

error: cannot derive Unaligned with repr(align(N > 1))
   --> tests/ui-stable/enum.rs:173:12
    |
173 | #[repr(u8, align(2))]
    |            ^^^^^^^^

error: cannot derive Unaligned with repr(align(N > 1))
   --> tests/ui-stable/enum.rs:179:12
    |
179 | #[repr(i8, align(2))]
    |            ^^^^^^^^

error: cannot derive Unaligned with repr(align(N > 1))
   --> tests/ui-stable/enum.rs:185:18
    |
185 | #[repr(align(1), align(2))]
    |                  ^^^^^^^^

error: cannot derive Unaligned with repr(align(N > 1))
   --> tests/ui-stable/enum.rs:191:8
    |
191 | #[repr(align(2), align(4))]
    |        ^^^^^^^^

error[E0565]: meta item in `repr` must be an identifier
  --> tests/ui-stable/enum.rs:19:8
   |
19 | #[repr("foo")]
   |        ^^^^^

error[E0552]: unrecognized representation hint
  --> tests/ui-stable/enum.rs:25:8
   |
25 | #[repr(foo)]
   |        ^^^
   |
   = help: valid reprs are `Rust` (default), `C`, `align`, `packed`, `transparent`, `simd`, `i8`, `u8`, `i16`, `u16`, `i32`, `u32`, `i64`, `u64`, `i128`, `u128`, `isize`, `usize`

error[E0566]: conflicting representation hints
  --> tests/ui-stable/enum.rs:37:8
   |
37 | #[repr(u8, u16)]
   |        ^^  ^^^
   |
   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
   = note: for more information, see issue #68585 <https://github.com/rust-lang/rust/issues/68585>
   = note: `#[deny(conflicting_repr_hints)]` on by default
