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
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev