diff --git a/clang/lib/Headers/vadefs.h b/clang/lib/Headers/vadefs.h index cb997fbf66c4..7fe9a74e3f69 100644 --- a/clang/lib/Headers/vadefs.h +++ b/clang/lib/Headers/vadefs.h @@ -45,5 +45,21 @@ #define _crt_va_arg(ap, type) __builtin_va_arg(ap, type) #endif +/* VS 2015 switched to double underscore names, which is an improvement, but now + * we have to intercept those names too. + */ +#ifdef __crt_va_start +#undef __crt_va_start +#define __crt_va_start(ap, param) __builtin_va_start(ap, param) +#endif +#ifdef __crt_va_end +#undef __crt_va_end +#define __crt_va_end(ap) __builtin_va_end(ap) +#endif +#ifdef __crt_va_arg +#undef __crt_va_arg +#define __crt_va_arg(ap, type) __builtin_va_arg(ap, type) +#endif + #endif #endif