From 5f8ad284f81c3f51be9b3d00ea9fee21ba727a97 Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Thu, 7 Dec 2017 09:04:54 +0200 Subject: [PATCH] py/mpprint: Make "%p" format work properly on 64-bit systems. Before, the output was truncated to 32 bits. --- py/mpprint.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/py/mpprint.c b/py/mpprint.c index a569ef7931..74912eb5f9 100644 --- a/py/mpprint.c +++ b/py/mpprint.c @@ -512,7 +512,8 @@ int mp_vprintf(const mp_print_t *print, const char *fmt, va_list args) { break; case 'p': case 'P': // don't bother to handle upcase for 'P' - chrs += mp_print_int(print, va_arg(args, unsigned int), 0, 16, 'a', flags, fill, width); + // Use unsigned long int to work on both ILP32 and LP64 systems + chrs += mp_print_int(print, va_arg(args, unsigned long int), 0, 16, 'a', flags, fill, width); break; #if MICROPY_PY_BUILTINS_FLOAT case 'e':