[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