summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoger Leigh <rleigh@codelibre.net>2021-02-04 22:17:47 +0000
committerRoger Leigh <rleigh@codelibre.net>2021-02-06 13:40:32 +0000
commit145eb81dc87441e400f2bdaf7b873c429ce8c768 (patch)
tree56d9d72853d988146dcebb3ee7760328977550f4
parent913d8f4cadd07da2abd48926749c0b95c38fd1ca (diff)
downloadlibtiff-git-145eb81dc87441e400f2bdaf7b873c429ce8c768.tar.gz
Suppress warnings or avoid case statement fallthrough
-rw-r--r--tools/tiff2bw.c3
-rw-r--r--tools/tiff2ps.c48
-rw-r--r--tools/tiff2rgba.c2
-rw-r--r--tools/tiffcmp.c2
-rw-r--r--tools/tiffcp.c2
-rw-r--r--tools/tiffdither.c3
-rw-r--r--tools/tiffinfo.c4
-rw-r--r--tools/tiffmedian.c2
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);