The unique_ptr_ret and weak_ptr_ret tests are not expected to pass on
AIX. These tests check that unique_ptr and weak_ptr are returned by
value, but on AIX, all structs are always returned by reference.
3.9.6 Function Return Values ... Note: Structures of any length and character strings longer than four bytes are returned in a storage buffer allocated by the caller. The address of this buffer is passed as a hidden first argument in GPR3, which causes the first explicit argument word to be passed in GPR4. This hidden argument is treated as a formal argument and corresponds to the first word of the argument area.
This PR LGTM, but for what it's worth, I wonder whether defined(__arm__) might also be true on ARM64...