From 145eb81dc87441e400f2bdaf7b873c429ce8c768 Mon Sep 17 00:00:00 2001 From: Roger Leigh Date: Thu, 4 Feb 2021 22:17:47 +0000 Subject: Suppress warnings or avoid case statement fallthrough --- tools/tiff2bw.c | 3 +++ tools/tiff2ps.c | 48 ++++++++++++++++++++++++++++++++++-------------- tools/tiff2rgba.c | 2 ++ tools/tiffcmp.c | 2 ++ tools/tiffcp.c | 2 ++ tools/tiffdither.c | 3 +++ tools/tiffinfo.c | 4 +++- tools/tiffmedian.c | 2 ++ 8 files changed, 51 insertions(+), 15 deletions(-) diff --git a/tools/tiff2bw.c b/tools/tiff2bw.c index 265a932f..acf7bc64 100644 --- a/tools/tiff2bw.c +++ b/tools/tiff2bw.c @@ -157,9 +157,12 @@ main(int argc, char* argv[]) break; case 'h': usage(EXIT_SUCCESS); + /*NOTREACHED*/ + break; case '?': usage(EXIT_FAILURE); /*NOTREACHED*/ + break; } if (argc - optind < 2) usage(EXIT_FAILURE); diff --git a/tools/tiff2ps.c b/tools/tiff2ps.c index cc5ef955..98c90002 100644 --- a/tools/tiff2ps.c +++ b/tools/tiff2ps.c @@ -177,6 +177,12 @@ #define DEFAULT_MAX_MALLOC (256 * 1024 * 1024) +#if defined(__GNUC__) || defined(__attribute__) +#define TIFF_FALLTHROUGH __attribute((fallthrough)) +#else +#define TIFF_FALLTHROUGH +#endif + /* malloc size limit (in bytes) * disabled when set to 0 */ static tmsize_t maxMalloc = DEFAULT_MAX_MALLOC; @@ -2455,7 +2461,13 @@ PSColorSeparatePreamble(FILE* fd, uint32_t w, uint32_t h, int nc) putc('\n', fd); \ (len) = MAXLINE-(howmany); \ } -#define PUTHEX(c,fd) putc(hex[((c)>>4)&0xf],fd); putc(hex[(c)&0xf],fd) + +static inline void +puthex(unsigned int c, FILE *fd) +{ + putc(hex[((c)>>4)&0xf],fd); + putc(hex[(c)&0xf],fd); +} void PSDataColorContig(FILE* fd, TIFF* tif, uint32_t w, uint32_t h, int nc) @@ -2503,10 +2515,14 @@ PSDataColorContig(FILE* fd, TIFF* tif, uint32_t w, uint32_t h, int nc) */ adjust = 255 - cp[nc]; switch (nc) { - case 4: c = *cp++ + adjust; PUTHEX(c,fd); - case 3: c = *cp++ + adjust; PUTHEX(c,fd); - case 2: c = *cp++ + adjust; PUTHEX(c,fd); - case 1: c = *cp++ + adjust; PUTHEX(c,fd); + case 4: c = *cp++ + adjust; puthex(c,fd); + TIFF_FALLTHROUGH; + case 3: c = *cp++ + adjust; puthex(c,fd); + TIFF_FALLTHROUGH; + case 2: c = *cp++ + adjust; puthex(c,fd); + TIFF_FALLTHROUGH; + case 1: c = *cp++ + adjust; puthex(c,fd); + TIFF_FALLTHROUGH; } cp += es; } @@ -2517,10 +2533,14 @@ PSDataColorContig(FILE* fd, TIFF* tif, uint32_t w, uint32_t h, int nc) for (cc = 0; (cc + nc) <= tf_bytesperrow; cc += samplesperpixel) { DOBREAK(breaklen, nc, fd); switch (nc) { - case 4: c = *cp++; PUTHEX(c,fd); - case 3: c = *cp++; PUTHEX(c,fd); - case 2: c = *cp++; PUTHEX(c,fd); - case 1: c = *cp++; PUTHEX(c,fd); + case 4: c = *cp++; puthex(c,fd); + TIFF_FALLTHROUGH; + case 3: c = *cp++; puthex(c,fd); + TIFF_FALLTHROUGH; + case 2: c = *cp++; puthex(c,fd); + TIFF_FALLTHROUGH; + case 1: c = *cp++; puthex(c,fd); + TIFF_FALLTHROUGH; } cp += es; } @@ -2553,7 +2573,7 @@ PSDataColorSeparate(FILE* fd, TIFF* tif, uint32_t w, uint32_t h, int nc) for (cp = tf_buf, cc = 0; cc < tf_bytesperrow; cc++) { DOBREAK(breaklen, 1, fd); c = *cp++; - PUTHEX(c,fd); + puthex(c,fd); } } } @@ -2562,7 +2582,7 @@ end_loop: } #define PUTRGBHEX(c,fd) \ - PUTHEX(rmap[c],fd); PUTHEX(gmap[c],fd); PUTHEX(bmap[c],fd) + puthex(rmap[c],fd); puthex(gmap[c],fd); puthex(bmap[c],fd) void PSDataPalette(FILE* fd, TIFF* tif, uint32_t w, uint32_t h) @@ -2739,14 +2759,14 @@ PSDataBW(FILE* fd, TIFF* tif, uint32_t w, uint32_t h) * where Cback = 1. */ adjust = 255 - cp[1]; - c = *cp++ + adjust; PUTHEX(c,fd); + c = *cp++ + adjust; puthex(c,fd); cp++, cc--; } } else { while (cc-- > 0) { c = *cp++; DOBREAK(breaklen, 1, fd); - PUTHEX(c, fd); + puthex(c, fd); } } } @@ -2840,7 +2860,7 @@ PSRawDataBW(FILE* fd, TIFF* tif, uint32_t w, uint32_t h) for (cp = tf_buf; cc > 0; cc--) { DOBREAK(breaklen, 1, fd); c = *cp++; - PUTHEX(c, fd); + puthex(c, fd); } fputs(">\n", fd); breaklen = MAXLINE; diff --git a/tools/tiff2rgba.c b/tools/tiff2rgba.c index e1495f14..0d8749e0 100644 --- a/tools/tiff2rgba.c +++ b/tools/tiff2rgba.c @@ -119,9 +119,11 @@ main(int argc, char* argv[]) case 'h': usage(EXIT_SUCCESS); /*NOTREACHED*/ + break; case '?': usage(EXIT_FAILURE); /*NOTREACHED*/ + break; } if (argc - optind < 2) diff --git a/tools/tiffcmp.c b/tools/tiffcmp.c index c895b374..aeaeae9b 100644 --- a/tools/tiffcmp.c +++ b/tools/tiffcmp.c @@ -90,9 +90,11 @@ main(int argc, char* argv[]) break; case 'h': usage(EXIT_SUCCESS); + break; case '?': usage(2); /*NOTREACHED*/ + break; } if (argc - optind < 2) usage(2); diff --git a/tools/tiffcp.c b/tools/tiffcp.c index e29ed333..79e73242 100644 --- a/tools/tiffcp.c +++ b/tools/tiffcp.c @@ -293,9 +293,11 @@ main(int argc, char* argv[]) case 'h': usage(EXIT_SUCCESS); /*NOTREACHED*/ + break; case '?': usage(EXIT_FAILURE); /*NOTREACHED*/ + break; } if (argc - optind < 2) usage(EXIT_FAILURE); diff --git a/tools/tiffdither.c b/tools/tiffdither.c index e240ec35..4a7962d6 100644 --- a/tools/tiffdither.c +++ b/tools/tiffdither.c @@ -243,9 +243,12 @@ main(int argc, char* argv[]) break; case 'h': usage(EXIT_SUCCESS); + /*NOTREACHED*/ + break; case '?': usage(EXIT_FAILURE); /*NOTREACHED*/ + break; } if (argc - optind < 2) usage(EXIT_FAILURE); diff --git a/tools/tiffinfo.c b/tools/tiffinfo.c index 329c0d31..8303bbf8 100644 --- a/tools/tiffinfo.c +++ b/tools/tiffinfo.c @@ -128,10 +128,12 @@ main(int argc, char* argv[]) break; case 'h': usage(EXIT_SUCCESS); - /*NOTREACHED*/ + /*NOTREACHED*/ + break; case '?': usage(EXIT_FAILURE); /*NOTREACHED*/ + break; } if (optind >= argc) usage(EXIT_FAILURE); diff --git a/tools/tiffmedian.c b/tools/tiffmedian.c index d3726bc3..b27695b2 100644 --- a/tools/tiffmedian.c +++ b/tools/tiffmedian.c @@ -155,9 +155,11 @@ main(int argc, char* argv[]) case 'h': usage(EXIT_SUCCESS); /*NOTREACHED*/ + break; case '?': usage(EXIT_FAILURE); /*NOTREACHED*/ + break; } if (argc - optind != 2) usage(EXIT_FAILURE); -- cgit v1.2.1