As implemented, the provenance will be that of `val`. There is currently no operation in Rust that can take the provenance of one pointer and combine it with the value (the memory location it points to) of another pointer.