On 3/24/2018 1:37 AM, Wink Saville wrote:
In routines jw_object_uint64 and jw_object_double strbuf_addf is
invoked with strbuf_addf(&jw->json, ":%"PRIuMAX, value) where value
is a uint64_t. This causes a compile error on OSX.

The correct format specifier is PRIu64 instead of PRIuMax.

Signed-off-by: Wink Saville <w...@saville.com>

That's odd.

A grep on the Git source tree did not find a "PRIu64" symbol.
Searching public-inbox only found one message [1] talking about it
(other than the ones associated with your messages here).

I have to wonder if that is defined in a OSX header file and
you're getting it from there [2].  (I don't have a MAC in front of
me, so I can't verify what's in that header.)  But [2] defines
PRIuMAX as PRIu64, so we shouldn't need to make that change in
json-writer -- unless something is getting lost in the #ifdefs.

Could you double check this in the header files on your system?
Any chance you are doing a 32-bit build?

Thanks
Jeff

[1] https://public-inbox.org/git/mwhpr21mb0478181ae0b64901da2c07cdf4...@mwhpr21mb0478.namprd21.prod.outlook.com/raw

[2] https://opensource.apple.com/source/gcc/gcc-926/inttypes.h.auto.html


---
  json-writer.c | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/json-writer.c b/json-writer.c
index 89a6abb57..04045448a 100644
--- a/json-writer.c
+++ b/json-writer.c
@@ -120,7 +120,7 @@ void jw_object_uint64(struct json_writer *jw, const char 
*key, uint64_t value)
        maybe_add_comma(jw);
append_quoted_string(&jw->json, key);
-       strbuf_addf(&jw->json, ":%"PRIuMAX, value);
+       strbuf_addf(&jw->json, ":%"PRIu64, value);
  }
void jw_object_double(struct json_writer *jw, const char *fmt,
@@ -225,7 +225,7 @@ void jw_array_uint64(struct json_writer *jw, uint64_t value)
        assert_in_array(jw);
        maybe_add_comma(jw);
- strbuf_addf(&jw->json, "%"PRIuMAX, value);
+       strbuf_addf(&jw->json, "%"PRIu64, value);
  }
void jw_array_double(struct json_writer *jw, const char *fmt, double value)

Reply via email to