This patch fixes initializing temporaries, which are currently initialized without an address space, meaning that no constructor can ever be applicable.
This is also working towards putting temporaries in the private address space.
Fixes the second issue in PR43296.
I wonder if we should instead change the check:
!Type.hasAddressSpace()
into an assert?
I also wonder if it makes sense to assert that if it has an address space it should be private?