error[E0080]: it is undefined behavior to use this value
  --> $DIR/const-pointer-values-in-various-types.rs:25:5
   |
LL |     const I32_REF_USIZE_UNION: usize = unsafe { Nonsense { int_32_ref: &3 }.u };
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered pointer to alloc2, but expected initialized plain (non-pointer) bytes
   |
   = note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rustc repository if you believe it should not be considered undefined behavior.

error: any use of this value will cause an error
  --> $DIR/const-pointer-values-in-various-types.rs:28:43
   |
LL |     const I32_REF_U8_UNION: u8 = unsafe { Nonsense { int_32_ref: &3 }.uint_8 };
   |     --------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
   |                                           |
   |                                           unable to turn pointer into raw bytes
   |
   = note: `#[deny(const_err)]` on by default

error: any use of this value will cause an error
  --> $DIR/const-pointer-values-in-various-types.rs:31:45
   |
LL |     const I32_REF_U16_UNION: u16 = unsafe { Nonsense { int_32_ref: &3 }.uint_16 };
   |     ----------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
   |                                             |
   |                                             unable to turn pointer into raw bytes

error: any use of this value will cause an error
  --> $DIR/const-pointer-values-in-various-types.rs:34:45
   |
LL |     const I32_REF_U32_UNION: u32 = unsafe { Nonsense { int_32_ref: &3 }.uint_32 };
   |     ----------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
   |                                             |
   |                                             unable to turn pointer into raw bytes

error[E0080]: it is undefined behavior to use this value
  --> $DIR/const-pointer-values-in-various-types.rs:37:5
   |
LL |     const I32_REF_U64_UNION: u64 = unsafe { Nonsense { int_32_ref: &3 }.uint_64 };
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered pointer to alloc22, but expected initialized plain (non-pointer) bytes
   |
   = note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rustc repository if you believe it should not be considered undefined behavior.

error[E0080]: it is undefined behavior to use this value
  --> $DIR/const-pointer-values-in-various-types.rs:40:5
   |
LL |     const I32_REF_U128_UNION: u128 = unsafe { Nonsense { int_32_ref: &3 }.uint_128 };
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered uninitialized bytes, but expected initialized plain (non-pointer) bytes
   |
   = note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rustc repository if you believe it should not be considered undefined behavior.

error: any use of this value will cause an error
  --> $DIR/const-pointer-values-in-various-types.rs:43:43
   |
LL |     const I32_REF_I8_UNION: i8 = unsafe { Nonsense { int_32_ref: &3 }.int_8 };
   |     --------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
   |                                           |
   |                                           unable to turn pointer into raw bytes

error: any use of this value will cause an error
  --> $DIR/const-pointer-values-in-various-types.rs:46:45
   |
LL |     const I32_REF_I16_UNION: i16 = unsafe { Nonsense { int_32_ref: &3 }.int_16 };
   |     ----------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
   |                                             |
   |                                             unable to turn pointer into raw bytes

error: any use of this value will cause an error
  --> $DIR/const-pointer-values-in-various-types.rs:49:45
   |
LL |     const I32_REF_I32_UNION: i32 = unsafe { Nonsense { int_32_ref: &3 }.int_32 };
   |     ----------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
   |                                             |
   |                                             unable to turn pointer into raw bytes

error[E0080]: it is undefined behavior to use this value
  --> $DIR/const-pointer-values-in-various-types.rs:52:5
   |
LL |     const I32_REF_I64_UNION: i64 = unsafe { Nonsense { int_32_ref: &3 }.int_64 };
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered pointer to alloc47, but expected initialized plain (non-pointer) bytes
   |
   = note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rustc repository if you believe it should not be considered undefined behavior.

error[E0080]: it is undefined behavior to use this value
  --> $DIR/const-pointer-values-in-various-types.rs:55:5
   |
LL |     const I32_REF_I128_UNION: i128 = unsafe { Nonsense { int_32_ref: &3 }.int_128 };
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered uninitialized bytes, but expected initialized plain (non-pointer) bytes
   |
   = note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rustc repository if you believe it should not be considered undefined behavior.

error: any use of this value will cause an error
  --> $DIR/const-pointer-values-in-various-types.rs:58:45
   |
LL |     const I32_REF_F32_UNION: f32 = unsafe { Nonsense { int_32_ref: &3 }.float_32 };
   |     ----------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
   |                                             |
   |                                             unable to turn pointer into raw bytes

error[E0080]: it is undefined behavior to use this value
  --> $DIR/const-pointer-values-in-various-types.rs:61:5
   |
LL |     const I32_REF_F64_UNION: f64 = unsafe { Nonsense { int_32_ref: &3 }.float_64 };
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered pointer to alloc62, but expected initialized plain (non-pointer) bytes
   |
   = note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rustc repository if you believe it should not be considered undefined behavior.

error: any use of this value will cause an error
  --> $DIR/const-pointer-values-in-various-types.rs:64:47
   |
LL |     const I32_REF_BOOL_UNION: bool = unsafe { Nonsense { int_32_ref: &3 }.truthy_falsey };
   |     ------------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
   |                                               |
   |                                               unable to turn pointer into raw bytes

error: any use of this value will cause an error
  --> $DIR/const-pointer-values-in-various-types.rs:67:47
   |
LL |     const I32_REF_CHAR_UNION: char = unsafe { Nonsense { int_32_ref: &3 }.character };
   |     ------------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
   |                                               |
   |                                               unable to turn pointer into raw bytes

error: any use of this value will cause an error
  --> $DIR/const-pointer-values-in-various-types.rs:70:39
   |
LL |     const STR_U8_UNION: u8 = unsafe { Nonsense { stringy: "3" }.uint_8 };
   |     ----------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
   |                                       |
   |                                       unable to turn pointer into raw bytes

error: any use of this value will cause an error
  --> $DIR/const-pointer-values-in-various-types.rs:73:41
   |
LL |     const STR_U16_UNION: u16 = unsafe { Nonsense { stringy: "3" }.uint_16 };
   |     ------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
   |                                         |
   |                                         unable to turn pointer into raw bytes

error: any use of this value will cause an error
  --> $DIR/const-pointer-values-in-various-types.rs:76:41
   |
LL |     const STR_U32_UNION: u32 = unsafe { Nonsense { stringy: "3" }.uint_32 };
   |     ------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
   |                                         |
   |                                         unable to turn pointer into raw bytes

error[E0080]: it is undefined behavior to use this value
  --> $DIR/const-pointer-values-in-various-types.rs:79:5
   |
LL |     const STR_U64_UNION: u64 = unsafe { Nonsense { stringy: "3" }.uint_64 };
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered pointer to alloc86, but expected initialized plain (non-pointer) bytes
   |
   = note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rustc repository if you believe it should not be considered undefined behavior.

error: any use of this value will cause an error
  --> $DIR/const-pointer-values-in-various-types.rs:82:43
   |
LL |     const STR_U128_UNION: u128 = unsafe { Nonsense { stringy: "3" }.uint_128 };
   |     --------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
   |                                           |
   |                                           unable to turn pointer into raw bytes

error: any use of this value will cause an error
  --> $DIR/const-pointer-values-in-various-types.rs:85:39
   |
LL |     const STR_I8_UNION: i8 = unsafe { Nonsense { stringy: "3" }.int_8 };
   |     ----------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
   |                                       |
   |                                       unable to turn pointer into raw bytes

error: any use of this value will cause an error
  --> $DIR/const-pointer-values-in-various-types.rs:88:41
   |
LL |     const STR_I16_UNION: i16 = unsafe { Nonsense { stringy: "3" }.int_16 };
   |     ------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
   |                                         |
   |                                         unable to turn pointer into raw bytes

error: any use of this value will cause an error
  --> $DIR/const-pointer-values-in-various-types.rs:91:41
   |
LL |     const STR_I32_UNION: i32 = unsafe { Nonsense { stringy: "3" }.int_32 };
   |     ------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
   |                                         |
   |                                         unable to turn pointer into raw bytes

error[E0080]: it is undefined behavior to use this value
  --> $DIR/const-pointer-values-in-various-types.rs:94:5
   |
LL |     const STR_I64_UNION: i64 = unsafe { Nonsense { stringy: "3" }.int_64 };
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered pointer to alloc101, but expected initialized plain (non-pointer) bytes
   |
   = note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rustc repository if you believe it should not be considered undefined behavior.

error: any use of this value will cause an error
  --> $DIR/const-pointer-values-in-various-types.rs:97:43
   |
LL |     const STR_I128_UNION: i128 = unsafe { Nonsense { stringy: "3" }.int_128 };
   |     --------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
   |                                           |
   |                                           unable to turn pointer into raw bytes

error: any use of this value will cause an error
  --> $DIR/const-pointer-values-in-various-types.rs:100:41
   |
LL |     const STR_F32_UNION: f32 = unsafe { Nonsense { stringy: "3" }.float_32 };
   |     ------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
   |                                         |
   |                                         unable to turn pointer into raw bytes

error[E0080]: it is undefined behavior to use this value
  --> $DIR/const-pointer-values-in-various-types.rs:103:5
   |
LL |     const STR_F64_UNION: f64 = unsafe { Nonsense { stringy: "3" }.float_64 };
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered pointer to alloc110, but expected initialized plain (non-pointer) bytes
   |
   = note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rustc repository if you believe it should not be considered undefined behavior.

error: any use of this value will cause an error
  --> $DIR/const-pointer-values-in-various-types.rs:106:43
   |
LL |     const STR_BOOL_UNION: bool = unsafe { Nonsense { stringy: "3" }.truthy_falsey };
   |     --------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
   |                                           |
   |                                           unable to turn pointer into raw bytes

error: any use of this value will cause an error
  --> $DIR/const-pointer-values-in-various-types.rs:109:43
   |
LL |     const STR_CHAR_UNION: char = unsafe { Nonsense { stringy: "3" }.character };
   |     --------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
   |                                           |
   |                                           unable to turn pointer into raw bytes

error: aborting due to 29 previous errors

For more information about this error, try `rustc --explain E0080`.
