[Mesa-dev] [PATCH] nir: Use PRIi64 and PRIu64 instead of %ld and %lu.
Jose Fonseca
jfonseca at vmware.com
Mon Apr 4 12:06:08 UTC 2016
On 04/04/16 06:37, Jason Ekstrand wrote:
>
> On Apr 3, 2016 7:51 PM, "Kenneth Graunke" <kenneth at whitecape.org
> <mailto:kenneth at whitecape.org>> wrote:
> >
> > %ld and %lu aren't the right format specifiers for int64_t and uint64_t
> > on 32-bit (x86) systems. They're %zu on Linux and %Iu on Windows.
> >
> > Use the standard C99 macros in hopes that they work everywhere.
> >
> > Signed-off-by: Kenneth Graunke <kenneth at whitecape.org
> <mailto:kenneth at whitecape.org>>
> > ---
> > src/compiler/nir/nir_search.c | 5 +++--
> > 1 file changed, 3 insertions(+), 2 deletions(-)
> >
> > diff --git a/src/compiler/nir/nir_search.c
> b/src/compiler/nir/nir_search.c
> > index 6e63063..c17d47b 100644
> > --- a/src/compiler/nir/nir_search.c
> > +++ b/src/compiler/nir/nir_search.c
> > @@ -25,6 +25,7 @@
> > *
> > */
> >
> > +#include <inttypes.h>
> > #include "nir_search.h"
> >
> > struct match_state {
> > @@ -483,7 +484,7 @@ construct_value(const nir_search_value *value,
> > break;
> >
> > case nir_type_int:
> > - load->def.name <http://def.name> = ralloc_asprintf(load,
> "%ld", c->data.i);
> > + load->def.name <http://def.name> = ralloc_asprintf(load,
> "%" PRIi64, c->data.i);
>
> Another option is to simply use lld and llu. That should be 64-bits on
> all the platforms we care about.
Yes, MSVC 2013 onwards also supports %ll :
https://msdn.microsoft.com/en-us/library/56e442dc(v=vs.120).aspx .
But to avoid compiler warnings it's better to use `long long` for
respective parameters too.
Jose
More information about the mesa-dev
mailing list