summaryrefslogtreecommitdiff
path: root/common/printf.c
diff options
context:
space:
mode:
authorEvan Green <evgreen@chromium.org>2019-09-23 12:57:40 -0700
committerCommit Bot <commit-bot@chromium.org>2019-10-05 00:47:45 +0000
commit3564b23531fc1814924f39e7ac97751d758c14db (patch)
tree39a04f30177288afe594f0d2a22a434a4a5b00f6 /common/printf.c
parente34fca3e01d75552ad8d712879c3ccd6a6168584 (diff)
downloadchrome-ec-3564b23531fc1814924f39e7ac97751d758c14db.tar.gz
printf: Add support for %z
When printing size_t sized integers, utilize the standard %z modifier so that the specifier format is correct. This will enable us to turn on compile-time printf format verification. BUG=chromium:984041 TEST=make -j buildall BRANCH=none Cq-Depend:chrome-internal:1860160 Change-Id: I2c95df5c0d87677cb9fcbde33ab8846708a774a1 Signed-off-by: Evan Green <evgreen@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1819651 Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
Diffstat (limited to 'common/printf.c')
-rw-r--r--common/printf.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/common/printf.c b/common/printf.c
index 4da70653ee..3c7bc5feca 100644
--- a/common/printf.c
+++ b/common/printf.c
@@ -223,9 +223,17 @@ int vfnprintf(int (*addchar)(void *context, int c), void *context,
int ptrspec;
void *ptrval;
- /* Handle length */
+ /*
+ * Handle length:
+ * %l - long
+ * %z - size_t
+ */
if (c == 'l') {
flags |= PF_64BIT;
+ } else if (c == 'z') {
+ if (sizeof(size_t) == sizeof(uint64_t))
+ flags |= PF_64BIT;
+
c = *format++;
}