core: Silence newer compiler warnings.

* configure.ac: Add -Wno-format-truncation and
  -Wno-sizeof-pointer-div.
* src/b64dec.c (_gpgme_b64dec_proc): Add fallthrough annotation.
* src/cJSON.c (parse_string): Ditto.
* src/gpgme-json.c (main): Ditto.
--

gcc 8 enables a couple of new warnings.  Some of them are useless for
us.  In particular:

  util.h:42:26: warning: division 'sizeof (char *) / sizeof (char)'
  does not compute the number of array elements [-Wsizeof-pointer-div]
  #define DIM(v) (sizeof(v)/sizeof((v)[0])) ^

  trustlist.c:101:22: note:
  in expansion of macro 'DIM' if (strlen (p) == DIM(item->keyid) - 1)

Which is a real standard way to use DIM, here the right hand side is
equivalent to sizeof but nevertheless it is correct.  Yes sir, we know
C.

The format string warnings I have seen were assuming that the time
structure returns valued out of scope - but if the system is that
broken, the s_n_printf catches this.

Signed-off-by: Werner Koch <wk@gnupg.org>
This commit is contained in:
Werner Koch 2018-12-17 16:47:06 +01:00
parent fbc298dc1b
commit 8b41fb08f0
No known key found for this signature in database
GPG Key ID: E3FDFF218E45B72B
4 changed files with 7 additions and 1 deletions

View File

@ -582,6 +582,8 @@ if test "$GCC" = yes; then
CFLAGS="$CFLAGS -Wno-missing-field-initializers" CFLAGS="$CFLAGS -Wno-missing-field-initializers"
CFLAGS="$CFLAGS -Wno-sign-compare" CFLAGS="$CFLAGS -Wno-sign-compare"
CFLAGS="$CFLAGS -Wno-format-zero-length" CFLAGS="$CFLAGS -Wno-format-zero-length"
CFLAGS="$CFLAGS -Wno-format-truncation"
CFLAGS="$CFLAGS -Wno-sizeof-pointer-div"
fi fi
CXXFLAGS="$CXXFLAGS -Wall -Wextra -Wno-shadow" CXXFLAGS="$CXXFLAGS -Wall -Wextra -Wno-shadow"

View File

@ -118,6 +118,7 @@ _gpgme_b64dec_proc (struct b64state *state, void *buffer, size_t length,
break; break;
case s_init: case s_init:
ds = s_lfseen; ds = s_lfseen;
/*FALLTHRU*/
case s_lfseen: case s_lfseen:
if (*s != "-----BEGIN "[pos]) if (*s != "-----BEGIN "[pos])
{ {

View File

@ -352,12 +352,15 @@ parse_string (cJSON * item, const char *str, const char **ep)
case 4: case 4:
*--ptr2 = ((uc | 0x80) & 0xBF); *--ptr2 = ((uc | 0x80) & 0xBF);
uc >>= 6; uc >>= 6;
/*FALLTHRU*/
case 3: case 3:
*--ptr2 = ((uc | 0x80) & 0xBF); *--ptr2 = ((uc | 0x80) & 0xBF);
uc >>= 6; uc >>= 6;
/*FALLTHRU*/
case 2: case 2:
*--ptr2 = ((uc | 0x80) & 0xBF); *--ptr2 = ((uc | 0x80) & 0xBF);
uc >>= 6; uc >>= 6;
/*FALLTHRU*/
case 1: case 1:
*--ptr2 = (uc | firstByteMark[len]); *--ptr2 = (uc | firstByteMark[len]);
} }

View File

@ -3861,7 +3861,7 @@ main (int argc, char *argv[])
{ {
case CMD_INTERACTIVE: case CMD_INTERACTIVE:
opt_interactive = 1; opt_interactive = 1;
/* Fall trough. */ /*FALLTHROUGH*/
case CMD_SINGLE: case CMD_SINGLE:
case CMD_LIBVERSION: case CMD_LIBVERSION:
cmd = pargs.r_opt; cmd = pargs.r_opt;