[Libreoffice-commits] core.git: soltools/mkdepend
Libreoffice Gerrit user
logerrit at kemper.freedesktop.org
Thu Nov 8 11:21:05 UTC 2018
soltools/mkdepend/include.c | 8 ++++++++
1 file changed, 8 insertions(+)
New commits:
commit f0f1ae6e9fd7f8d2a5b64909071f3321b5eada4d
Author: Stephan Bergmann <sbergman at redhat.com>
AuthorDate: Thu Nov 8 09:31:32 2018 +0100
Commit: Stephan Bergmann <sbergman at redhat.com>
CommitDate: Thu Nov 8 12:19:30 2018 +0100
Silence GCC 8.2.1 -Werror=format-truncation=
After 09841225fc055f8270cee3059253f923dd544797 "soltools: fix
-Werror=format-overflow" changed the sprintf into an snprintf, at least the
Fedora 29 "gcc (GCC) 8.2.1 20181011 (Red Hat 8.2.1-4)" now complains about
> [C ] soltools/mkdepend/include.c
> soltools/mkdepend/include.c: In function ‘remove_dotdot.constprop’:
> soltools/mkdepend/include.c:246:42: error: ‘snprintf’ output may be truncated before the last format character [-Werror=format-truncation=]
> int n = snprintf(buf, BUFSIZ, "%s%s%s", dir, *dir ? "/" : "", component);
> ^
> soltools/mkdepend/include.c:246:13: note: ‘snprintf’ output 1 or more bytes (assuming 8193) into a destination of size 8192
> int n = snprintf(buf, BUFSIZ, "%s%s%s", dir, *dir ? "/" : "", component);
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This all looks not very helpful, lets limit the silencing to just GCC 8.2 (in
the hopes that later versions of GCC won't emit that warning any more, anyway).
Change-Id: I006964e4f32bbb52b6b90288e2d623797b8d38ea
Reviewed-on: https://gerrit.libreoffice.org/63068
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman at redhat.com>
diff --git a/soltools/mkdepend/include.c b/soltools/mkdepend/include.c
index 26a237bc827e..f47b9d8efeab 100644
--- a/soltools/mkdepend/include.c
+++ b/soltools/mkdepend/include.c
@@ -243,7 +243,15 @@ int issymbolic(char *dir, char *component)
struct stat st;
char buf[ BUFSIZ ], **pp;
+#if defined __GNUC__ && __GNUC__ == 8 && __GNUC_MINOR__ == 2 && !defined __clang__
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wformat-truncation"
+ // silence "‘snprintf’ output may be truncated before the last format character"
+#endif
int n = snprintf(buf, BUFSIZ, "%s%s%s", dir, *dir ? "/" : "", component);
+#if defined __GNUC__ && __GNUC__ == 8 && __GNUC_MINOR__ == 2 && !defined __clang__
+#pragma GCC diagnostic pop
+#endif
assert(n < BUFSIZ);
(void) n;
for (pp=notdotdot; *pp; pp++)
More information about the Libreoffice-commits
mailing list