diff options
author | David Oberhollenzer <david.oberhollenzer@sigma-star.at> | 2017-09-21 13:36:42 +0200 |
---|---|---|
committer | David Oberhollenzer <david.oberhollenzer@sigma-star.at> | 2017-11-02 01:33:32 +0100 |
commit | cb2fcfc0a1da3cfac9094abf1d11c23653937395 (patch) | |
tree | 5885e3f6073020ba3b07db35ab2aef73b2726374 /misc-utils | |
parent | 81fd176a6b4958147302ef900f2651c476a3d4e7 (diff) |
Add no-return attribute to usage() style functions
A common pattern in command line processing is having a usage()
function that prints out how to use the command line options and
then terminates.
The function is typically used inside a switch block for command
line options like `-h' or unknown options. In a lot of places, the
break keyword is omitted, because the function exits anyway. However,
this triggers gcc warnings about implicit fall-through.
Rather than adding a phony "/* fall-through */" this patch flags the
usage() style function with a gcc attribute, indicating that they do
not return and removes further superfluous break statements.
Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
Diffstat (limited to 'misc-utils')
-rw-r--r-- | misc-utils/flash_unlock.c | 4 | ||||
-rw-r--r-- | misc-utils/flashcp.c | 2 | ||||
-rw-r--r-- | misc-utils/mtd_debug.c | 2 |
3 files changed, 3 insertions, 5 deletions
diff --git a/misc-utils/flash_unlock.c b/misc-utils/flash_unlock.c index 5a3aac5..fbbfa51 100644 --- a/misc-utils/flash_unlock.c +++ b/misc-utils/flash_unlock.c @@ -36,7 +36,7 @@ static const char *flash_msg[] = { [ REQUEST_ISLOCKED ] = "check lock status", }; -static void usage(int status) +static NORETURN void usage(int status) { fprintf(status ? stderr : stdout, "Utility to lock, unlock, or check the lock status of the flash.\n" @@ -88,7 +88,6 @@ static void process_args(int argc, char *argv[]) switch (c) { case 'h': usage(EXIT_SUCCESS); - break; case 'i': req = REQUEST_ISLOCKED; req_set++; @@ -106,7 +105,6 @@ static void process_args(int argc, char *argv[]) exit(0); default: usage(EXIT_FAILURE); - break; } } diff --git a/misc-utils/flashcp.c b/misc-utils/flashcp.c index a35e6fc..0718733 100644 --- a/misc-utils/flashcp.c +++ b/misc-utils/flashcp.c @@ -81,7 +81,7 @@ static void log_printf (int level,const char *fmt, ...) fflush (fp); } -static void showusage(bool error) +static NORETURN void showusage(bool error) { int level = error ? LOG_ERROR : LOG_NORMAL; diff --git a/misc-utils/mtd_debug.c b/misc-utils/mtd_debug.c index 90f5d52..d90a968 100644 --- a/misc-utils/mtd_debug.c +++ b/misc-utils/mtd_debug.c @@ -339,7 +339,7 @@ static int showinfo(int fd) return 0; } -static void showusage(void) +static NORETURN void showusage(void) { fprintf(stderr, "usage: %1$s info <device>\n" " %1$s read <device> <offset> <len> <dest-filename>\n" |