tcanens added a comment. At least for GCC, it should use `__builtin_launder`. Also needs to implement "The program is ill-formed if `T` is a function type or //cv// `void`." https://reviews.llvm.org/D40144