This is how `clang` handles it, but it also makes use of `sret`. I'm not sure if there would be any benefits from that.