[PATCH] D45383: Limit types of builtins that can be redeclared.

Erich Keane via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Apr 16 05:55:35 PDT 2018


erichkeane added a comment.

In https://reviews.llvm.org/D45383#1068085, @compnerd wrote:

>   Snipping bits from `va_defs.h`:
>   
>
>   #elif defined _M_ARM64
>  
>       void __cdecl __va_start(va_list*, ...);
>  
>       #define __crt_va_start_a(ap,v) ((void)(__va_start(&ap, _ADDRESSOF(v), _SLOTSIZEOF(v), __alignof(v), _ADDRESSOF(v))))
>   ...
>  
>   #elif defined _M_X64
>  
>       void __cdecl __va_start(va_list* , ...);
>  
>       #define __crt_va_start_a(ap, x) ((void)(__va_start(&ap, x)))
>  
>   ...
>
>
> This looks like a declaration to me.  Although, this is in system headers, so maybe we can ignore it by means of the system header suppression?  The minor problem with that is that clang-cl (and the clang driver with the windows triple) do not support `-isystem` or `-isysroot` or `--sysroot` arguments.  I suppose that as long as we expose the cc1 option (I imagine that clang-cl will pass the system paths appropriately), that is one option.


Ah, thank you!  I couldn't find that when I looked after your last message, perhaps my grep skills are lacking.  Unfortunately, allowing this in headers won't fix the actual bug, it'll just let it continue to crash on these headers.
I'm kind of out of ideas here...  @efriedma : Ideas?


https://reviews.llvm.org/D45383





More information about the cfe-commits mailing list