Re: [RFC PATCH 1/1] json-writer: incorrect format specifier

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





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 <wink@xxxxxxxxxxx>

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/MWHPR21MB0478181AE0B64901DA2C07CDF4600@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/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)




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux