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 a pointer, 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 };
   |     --------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
   |                                           |
   |                                           a raw memory access tried to access part of a pointer value as 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 };
   |     ----------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
   |                                             |
   |                                             a raw memory access tried to access part of a pointer value as 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 };
   |     ----------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
   |                                             |
   |                                             a raw memory access tried to access part of a pointer value as 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 a pointer, 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 };
   |     --------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
   |                                           |
   |                                           a raw memory access tried to access part of a pointer value as 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 };
   |     ----------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
   |                                             |
   |                                             a raw memory access tried to access part of a pointer value as 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 };
   |     ----------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
   |                                             |
   |                                             a raw memory access tried to access part of a pointer value as 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 a pointer, 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 };
   |     ----------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
   |                                             |
   |                                             a raw memory access tried to access part of a pointer value as 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 a pointer, 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 };
   |     ------------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
   |                                               |
   |                                               a raw memory access tried to access part of a pointer value as 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 };
   |     ------------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
   |                                               |
   |                                               a raw memory access tried to access part of a pointer value as 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 };
   |     ----------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
   |                                       |
   |                                       a raw memory access tried to access part of a pointer value as 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 };
   |     ------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
   |                                         |
   |                                         a raw memory access tried to access part of a pointer value as 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 };
   |     ------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
   |                                         |
   |                                         a raw memory access tried to access part of a pointer value as 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 a pointer, 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 };
   |     --------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
   |                                           |
   |                                           a raw memory access tried to access part of a pointer value as 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 };
   |     ----------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
   |                                       |
   |                                       a raw memory access tried to access part of a pointer value as 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 };
   |     ------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
   |                                         |
   |                                         a raw memory access tried to access part of a pointer value as 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 };
   |     ------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
   |                                         |
   |                                         a raw memory access tried to access part of a pointer value as 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 a pointer, 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 };
   |     --------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
   |                                           |
   |                                           a raw memory access tried to access part of a pointer value as 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 };
   |     ------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
   |                                         |
   |                                         a raw memory access tried to access part of a pointer value as 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 a pointer, 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 };
   |     --------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
   |                                           |
   |                                           a raw memory access tried to access part of a pointer value as 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 };
   |     --------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
   |                                           |
   |                                           a raw memory access tried to access part of a pointer value as raw bytes

error: aborting due to 29 previous errors

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