From 26d7185d6f0a79188fdf02c5eec6e52bb29112f8 Mon Sep 17 00:00:00 2001 From: Steve Ellcey Date: Wed, 2 Nov 2016 16:00:39 -0700 Subject: [PATCH] Fix -Wformat-length warning in time/tst-strptime2.c * time/tst-strptime2.c: Ignore -Wformat-length warning. --- ChangeLog | 4 ++++ time/tst-strptime2.c | 11 +++++++++++ 2 files changed, 15 insertions(+) diff --git a/ChangeLog b/ChangeLog index 920396a6f6..a8b8bde376 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2016-11-02 Steve Ellcey + + * time/tst-strptime2.c: Ignore -Wformat-length warning. + 2016-11-02 Florian Weimer Carlos O'Donell diff --git a/time/tst-strptime2.c b/time/tst-strptime2.c index 7fe7350024..04f7cff437 100644 --- a/time/tst-strptime2.c +++ b/time/tst-strptime2.c @@ -4,6 +4,7 @@ #include #include #include +#include /* Dummy string is used to match strptime's %s specifier. */ @@ -67,10 +68,20 @@ mkbuf (char *buf, bool neg, bool colon, unsigned int hhmm, size_t ndigits) long int expect = LONG_MAX; i = sprintf (buf, "%s %c", dummy_string, sign); +#if __GNUC_PREREQ (7, 0) + /* GCC issues a warning when it thinks the snprintf buffer may be too short. + This test is explicitly using short buffers to force snprintf to truncate + the output so we ignore the warnings. */ + DIAG_PUSH_NEEDS_COMMENT; + DIAG_IGNORE_NEEDS_COMMENT (7.0, "-Wformat-length"); +#endif if (colon) snprintf (buf + i, ndigits + 2, "%02u:%02u", hh, mm); else snprintf (buf + i, ndigits + 1, "%04u", hhmm); +#if __GNUC_PREREQ (7, 0) + DIAG_POP_NEEDS_COMMENT; +#endif if (mm <= mm_max && (ndigits == 2 || ndigits == 4)) { -- 2.43.5