[Mesa-dev] [PATCH] gen_matypes: eliminate printf warnings

Brian Paul brianp at vmware.com
Fri Dec 9 07:03:01 PST 2011


On 12/09/2011 07:59 AM, Jose Fonseca wrote:
>
>
> ----- Original Message -----
>> On 12/09/2011 07:00 AM, nobled wrote:
>>> The VERT_BIT_* defines are 64-bit values since commit
>>> f364ac1da10ff67eba5196c1074aff579864f741, but the printf
>>> was still expecting a simple int. This worked on little-endian
>>> hosts because the values were still less than INT_MAX, but
>>> probably would've gone bad and printed zero on big-endian ones.
>>> ---
>>>    src/mesa/x86/gen_matypes.c |    7 ++++++-
>>>    1 files changed, 6 insertions(+), 1 deletions(-)
>>>
>>> diff --git a/src/mesa/x86/gen_matypes.c
>>> b/src/mesa/x86/gen_matypes.c
>>> index 648bf87..18baa29 100644
>>> --- a/src/mesa/x86/gen_matypes.c
>>> +++ b/src/mesa/x86/gen_matypes.c
>>> @@ -32,6 +32,11 @@
>>>     * Mesa, including lighting, clipping, texture image conversion
>>>     etc.
>>>     */
>>>
>>> +#ifndef __STDC_FORMAT_MACROS
>>> +#define __STDC_FORMAT_MACROS
>>> +#endif
>>> +#include<inttypes.h>
>>> +
>>>    #include "main/glheader.h"
>>>    #include "main/mtypes.h"
>>>    #include "tnl/t_context.h"
>>> @@ -68,7 +73,7 @@ do {									\
>>>       printf( "#define %s\t%lu\n", s, (unsigned long) sizeof(t) );
>>>
>>>    #define DEFINE( s, d )							\
>>> -   printf( "#define %s\t0x%x\n", s, d );
>>> +   printf( "#define %s\t0x%"PRIx64"\n", s, (uint64_t) d );
>>
>>
>> I'm not sure that inttypes.h exists on Windows.  We may need some
>> #ifdef stuff there.
>
> We provide our own in mesa/include/c99/ so it should be ok.

Oh that's right.

BTW, there's a few other places where we want to print 64-bit values 
and use the %llx format plus (unsigned long long) casting.  But that 
generates warnings on some platforms.  I think we could fix those if 
we used the "PRI" macros in those places.

-Brian


More information about the mesa-dev mailing list