__builtin_va_*() and __builtin_ms_va_*() declared as functions with reference parameters.
This patch fix clang crashes at using these functions in C and passing incompatible structures as parameters in case of __builtin_va_list/__builtin_ms_va_list are structures.
I cannot reproduce this with the provided test case. Can you explain why T2RecordDecl would not be a CXXRecordDecl since we should only get there with c++?