[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