| // Regression test for https://github.com/rust-lang/rust/issues/122581 | |
| // This used to ICE, because the union was unsized and the pointer casting code | |
| // assumed that non-struct ADTs must be sized. | |
| union Union { | |
| val: std::mem::ManuallyDrop<[u8]>, | |
| //~^ ERROR the size for values of type `[u8]` cannot be known at compilation time | |
| } | |
| fn cast(ptr: *const ()) -> *const Union { | |
| ptr as _ | |
| } | |
| fn main() {} |