summaryrefslogtreecommitdiff
path: root/src/die.h
diff options
context:
space:
mode:
authorJim Meyering <meyering@fb.com>2016-10-04 19:20:46 -0700
committerJim Meyering <meyering@fb.com>2016-10-15 08:41:42 -0700
commitdad7ab0b7b322a800e6b1012b777169169068388 (patch)
tree8ea9b6caf6a6e4d5e7ae645501d0a9f082d05cc7 /src/die.h
parent0d9323ec551ae3de965167247c32dc4d6a407862 (diff)
downloadcoreutils-dad7ab0b7b322a800e6b1012b777169169068388.tar.xz
build: add die.h; avoid new warnings from GCC 7
* src/die.h (die): New file/function from grep. Note: we expect this file to migrate to gnulib. * src/csplit.c: Include die.h. (check_format_conv_type): Use die in place of error-nonzero;break; * src/install.c (strip): Likewise. * src/nl.c (proc_text): Likewise. This also suppresses a new warning from GCC 7's -Werror=strict-overflow. * src/tail.c (parse_options): Likewise. * src/basename.c (main): Adjust "fall through" comment so that GCC 7's -Wimplicit-fallthrough honors it. * src/cp.c (main): Add a "fall through" comment. * src/ls.c (gobble_file): Likewise. (get_funky_string): Adjust a "fall through" comment so it is recognized. * cfg.mk (exclude_file_name_regexp--sc_system_h_headers): Add die.h to this list of exempt src/*.h files.
Diffstat (limited to 'src/die.h')
-rw-r--r--src/die.h31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/die.h b/src/die.h
new file mode 100644
index 000000000..f64ab349f
--- /dev/null
+++ b/src/die.h
@@ -0,0 +1,31 @@
+/* Report an error and exit.
+ Copyright 2016 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
+ 02110-1301, USA. */
+
+#ifndef DIE_H
+# define DIE_H
+
+# include <error.h>
+# include <stdbool.h>
+# include <verify.h>
+
+/* Like 'error (STATUS, ...)', except STATUS must be a nonzero constant.
+ This may pacify the compiler or help it generate better code. */
+# define die(status, ...) \
+ verify_expr (status, (error (status, __VA_ARGS__), assume (false)))
+
+#endif /* DIE_H */