// Variant of #117151 when the overflow comes entirely from subtype predicates. #![allow(unreachable_code)] use std::ptr; fn main() { // Give x and y completely unconstrained types. Using a function call // or `as` cast would create a well-formed predicate. let x = return; let y = return; let mut w = (x, y); //~^ ERROR overflow assigning `_` to `*const _` // Avoid creating lifetimes, `Sized` bounds or function calls. let a = (ptr::addr_of!(y), ptr::addr_of!(x)); w = a; }