From 235db81ae5d900ddad6b4f99718bcf9f0b84a282 Mon Sep 17 00:00:00 2001 From: Reid Kleckner Date: Thu, 20 Nov 2014 22:44:03 +0000 Subject: [PATCH] Intercept __crt_va_* used by MSVC "14" Moving further into the implementor's namespace is good, but now we have one more name to intercept. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222473 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Headers/vadefs.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/lib/Headers/vadefs.h b/lib/Headers/vadefs.h index cb997fbf66..7fe9a74e3f 100644 --- a/lib/Headers/vadefs.h +++ b/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 -- 2.40.0