[PATCH 1/2] include: Don't use the printf format attribute when compiling against msvcrt and not cross-compiling.

Zebediah Figura z.figura12 at gmail.com
Wed Dec 4 14:09:31 CST 2019


On 12/4/19 12:36 PM, Chip Davis wrote:
> December 4, 2019 12:28 PM, "Zebediah Figura" <z.figura12 at gmail.com> wrote:
> 
>> diff --git a/include/wine/debug.h b/include/wine/debug.h
>> index 1c312e9322..81c32e1816 100644
>> --- a/include/wine/debug.h
>> +++ b/include/wine/debug.h
>> @@ -92,7 +92,11 @@ struct __wine_debug_channel
>>   #define __WINE_DBG_LOG(args...) \
>>       wine_dbg_log( __dbcl, __dbch, __FUNCTION__, args); } } while(0)
>>
>> +#if !defined(__WINE_USE_MSVCRT) || defined(__MINGW32__)
>>   #define __WINE_PRINTF_ATTR(fmt,args) __attribute__((format (printf,fmt,args)))
>> +#else
>> +#define __WINE_PRINTF_ATTR(fmt,args)
>> +#endif
> 
> Consider using '__attribute__((format(ms_printf)))' instead. That shouldn't warn on %I, but would still give us the benefits of GCC/Clang's warning. Note that Clang does not yet support that form. I have a patch to fix that, but I need to get it upstream.

At least on gcc 9.2 ms_printf is only recognized for mingw targets. The 
documentation implies this as well: "On MinGW targets, ms_printf, 
ms_scanf, and ms_strftime are also present." [1]

[1] 
https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#Common-Function-Attributes

> 
>>
>>   #ifdef WINE_NO_TRACE_MSGS
> 
> 
> Chip
> 




More information about the wine-devel mailing list