Unlike addresses of indirect arguments, a pointer argument (e.g. `UnsafePointer`) can escape a function call. For example, it can be returned. Fixes a miscompile rdar://154124497
Function
AST.Type
AST.CanonicalType
SIL.Type
copy_addr
store