This fixes a bug in clang where it emits the following diagnostic when compiling the test case:
argument to 'sizeof' in 'memset' call is the same pointer type 'S' as the destination
The code that merges __auto_type with other types was committed in https://reviews.llvm.org/D122029.