On 04/04/16 06:37, Jason Ekstrand wrote:

On Apr 3, 2016 7:51 PM, "Kenneth Graunke" <kenn...@whitecape.org
<mailto:kenn...@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 <kenn...@whitecape.org
<mailto:kenn...@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
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to