Add __attribute__((__noreturn__)) to various function prototypes in sbin/.
authorSascha Wildner <saw@online.de>
Wed, 20 Dec 2017 03:33:04 +0000 (04:33 +0100)
committerSascha Wildner <saw@online.de>
Wed, 20 Dec 2017 03:33:45 +0000 (04:33 +0100)
This general cleanup is useful in various ways. It helps the compiler
optimize better and it also helps later GCCs detect better when to give
-Wimplicit-fallthrough warnings and when not.

Found-with: -Wsuggest-attribute=noreturn

24 files changed:
sbin/devfsctl/devfsctl.h
sbin/dhclient/dhclient.c
sbin/dhclient/dhcpd.h
sbin/disklabel32/disklabel.c
sbin/disklabel64/disklabel64.c
sbin/dmesg/dmesg.c
sbin/dump/dump.h
sbin/dumpfs/dumpfs.c
sbin/fsck/fsck.h
sbin/hammer/hammer.h
sbin/ifconfig/ifconfig.h
sbin/mount_udf/mount_udf.c
sbin/mountd/mountd.c
sbin/natd/natd.h
sbin/newfs/mkfs.c
sbin/newfs/newfs.c
sbin/nfsd/nfsd.c
sbin/ping6/ping6.c
sbin/quotacheck/quotacheck.c
sbin/reboot/reboot.c
sbin/routed/defs.h
sbin/tunefs/tunefs.c
sbin/umount/umount.c
sbin/vinum/vext.h

index 967b200..b991328 100644 (file)
@@ -107,7 +107,7 @@ void add_rule(struct rule *);
 int rule_apply(void);
 void dump_config(void);
 int read_config(const char *, int);
-void syntax_error(const char *fmt, ...) __printflike(1, 2);
+void syntax_error(const char *fmt, ...) __dead2 __printflike(1, 2);
 void rule_tab(void);
 void delete_rules(void);
 #endif
index 8145d9e..bba0f88 100644 (file)
@@ -90,7 +90,7 @@ struct client_config *config;
 
 int            findproto(char *, int);
 struct sockaddr        *get_ifa(char *, int);
-void           usage(void);
+void           usage(void) __dead2;
 int            check_option(struct client_lease *l, int option);
 int            check_classless_option(unsigned char *data, int len);
 int            ipv4addrs(char * buf);
index dbc2ff8..2fefab4 100644 (file)
@@ -211,7 +211,7 @@ void do_packet(int, unsigned int, struct iaddr, struct hardware *);
 
 /* errwarn.c */
 extern int warnings_occurred;
-void error(char *, ...) __attribute__ ((__format__ (__printf__, 1, 2)));
+void error(char *, ...) __attribute__((__noreturn__)) __attribute__ ((__format__ (__printf__, 1, 2)));
 int warning(char *, ...) __attribute__ ((__format__ (__printf__, 1, 2)));
 int note(char *, ...) __attribute__ ((__format__ (__printf__, 1, 2)));
 #ifdef DEBUG
@@ -246,7 +246,7 @@ ssize_t receive_packet(struct sockaddr_in *, struct hardware *);
 
 /* dispatch.c */
 void discover_interface(void);
-void dispatch(void);
+void dispatch(void) __dead2;
 void got_one(void);
 void set_timeout(time_t, void (*)(void));
 void set_timeout_interval(time_t, void (*)(void));
index eb3d90d..261a3a2 100644 (file)
@@ -102,7 +102,7 @@ int getasciipartspec(char *, struct disklabel32 *, int, int);
 int    checklabel(struct disklabel32 *);
 void   setbootflag(struct disklabel32 *);
 void   Warning(const char *, ...) __printflike(1, 2);
-void   usage(void);
+void   usage(void) __dead2;
 int    checkoldboot(int, const char *);
 const char *fixlabel(int, struct disklabel32 *, int);
 struct disklabel32 *getvirginlabel(void);
index 901810e..915f812 100644 (file)
@@ -134,7 +134,7 @@ int getasciipartspec(char *, struct disklabel64 *, int, int, uint32_t);
 int    getasciipartuuid(char *, struct disklabel64 *, int, int, uint32_t);
 int    checklabel(struct disklabel64 *);
 void   Warning(const char *, ...) __printflike(1, 2);
-void   usage(void);
+void   usage(void) __dead2;
 struct disklabel64 *getvirginlabel(void);
 
 #define        DEFEDITOR       _PATH_VI
index 11c157b..5bbe2bc 100644 (file)
@@ -53,7 +53,7 @@ static struct nlist nl[] = {
 
 static void dumpbuf(char *bp, size_t bufpos, size_t buflen,
                    int *newl, int *skip, int *pri);
-static void usage(void);
+static void usage(void) __dead2;
 
 #define        KREAD(addr, var) \
        kvm_read(kd, addr, &var, sizeof(var)) != sizeof(var)
index 3c86585..ecb1b1e 100644 (file)
@@ -105,7 +105,7 @@ void        lastdump(int);          /* int should be char */
 void   msg(const char *, ...) __printflike(1, 2);
 void   msgtail(const char *, ...) __printflike(1, 2);
 int    query(const char *);
-void   quit(const char *, ...) __printflike(1, 2);
+void   quit(const char *, ...) __dead2 __printflike(1, 2);
 void   timeest(void);
 time_t unctime(const char *);
 
@@ -132,7 +132,7 @@ void        trewind(void);
 void   writerec(const void *, int);
 
 void   Exit(int) __dead2;
-void   dumpabort(int);
+void   dumpabort(int) __dead2;
 void   dump_getfstab(void);
 
 char   *rawname(char *);
index 53fabaf..7b6dec2 100644 (file)
@@ -63,7 +63,7 @@ static int    dumpfs(char *);
 static int     dumpcg(char *, int, int);
 static int     marshal(const char*);
 static void    pbits(void *, int);
-static void    usage(void);
+static void    usage(void) __dead2;
 
 int
 main(int argc, char **argv)
index c6f3046..7d5c78d 100644 (file)
@@ -28,7 +28,6 @@
  *
  *     @(#)fsck.h      8.4 (Berkeley) 5/9/95
  * $FreeBSD: src/sbin/fsck/fsck.h,v 1.12.2.1 2001/01/23 23:11:07 iedowse Exp $
- * $DragonFly: src/sbin/fsck/fsck.h,v 1.9 2007/04/20 22:20:10 dillon Exp $
  */
 
 #include <unistd.h>
@@ -254,7 +253,7 @@ int         bread(int, char *, ufs_daddr_t, long);
 void           bufinit(void);
 void           bwrite(int, char *, ufs_daddr_t, long);
 void           cacheino(struct ufs1_dinode *, ufs1_ino_t);
-void           catch(int);
+void           catch(int) __dead2;
 void           catchquit(int);
 int            changeino(ufs1_ino_t, char *, ufs1_ino_t);
 int            checkfstab(int, int,
@@ -292,7 +291,7 @@ void                inodirty(void);
 struct inostat *inoinfo(ufs1_ino_t);
 int            linkup(ufs1_ino_t, ufs1_ino_t, char *);
 int            makeentry(ufs1_ino_t, ufs1_ino_t, char *);
-void           panic(const char *, ...) __printflike(1, 2);
+void           panic(const char *, ...) __dead2 __printflike(1, 2);
 void           pass1(void);
 void           pass1b(void);
 int            pass1check(struct inodesc *);
index ed29eeb..355cf2c 100644 (file)
@@ -85,14 +85,14 @@ void hammer_cmd_viconfig(char **av, int ac);
 void hammer_cmd_cleanup(char **av, int ac);
 void hammer_cmd_abort_cleanup(char **av, int ac);
 void hammer_cmd_info(char **av, int ac);
-void hammer_cmd_sshremote(const char *cmd, const char *target);
+void hammer_cmd_sshremote(const char *cmd, const char *target) __dead2;
 void hammer_cmd_snap(char **av, int ac, int tostdout, int fsbase);
 void hammer_cmd_snapls(char **av, int ac);
 void hammer_cmd_snaprm(char **av, int ac);
 void hammer_cmd_snapshot(char **av, int ac);
-void hammer_cmd_bstats(char **av, int ac);
-void hammer_cmd_iostats(char **av, int ac);
-void hammer_cmd_stats(char **av, int ac);
+void hammer_cmd_bstats(char **av, int ac) __dead2;
+void hammer_cmd_iostats(char **av, int ac) __dead2;
+void hammer_cmd_stats(char **av, int ac) __dead2;
 void hammer_cmd_history(const char *offset_str, char **av, int ac);
 void hammer_cmd_rebalance(char **av, int ac);
 void hammer_cmd_reblock(char **av, int ac, int flags);
index c5d3ff9..81bec63 100644 (file)
@@ -142,7 +142,7 @@ extern      int verbose;
 
 void   setifcap(const char *, int value, int s, const struct afswtch *);
 
-void   Perror(const char *cmd);
+void   Perror(const char *cmd) __dead2;
 void   printb(const char *s, unsigned value, const char *bits);
 
 void   ifmaybeload(const char *);
index a38b964..e3cae6b 100644 (file)
@@ -59,7 +59,7 @@ static struct mntopt mopts[] = {
        MOPT_NULL
 };
 
-static void    usage(void);
+static void    usage(void) __dead2;
 
 int
 main(int argc, char **argv)
index 1019522..c9fb1de 100644 (file)
@@ -181,7 +181,7 @@ void        huphandler2(int sig);
 int     makemask(struct sockaddr_storage *ssp, int bitlen);
 void   mntsrv(struct svc_req *, SVCXPRT *);
 void   nextfield(char **, char **);
-void   out_of_mem(void);
+void   out_of_mem(void) __dead2;
 void   parsecred(char *, struct ucred *);
 int    put_exlist(struct dirlist *, XDR *, struct dirlist *, int *, int);
 void    *sa_rawaddr(struct sockaddr *sa, int *nbytes);
@@ -194,7 +194,7 @@ int xdr_explist(XDR *, caddr_t);
 int    xdr_explist_brief(XDR *, caddr_t);
 int    xdr_fhs(XDR *, caddr_t);
 int    xdr_mlist(XDR *, caddr_t);
-void   terminate(int);
+void   terminate(int) __dead2;
 
 struct exportlist *exphead;
 struct mountlist *mlhead;
index 3e53d95..506abef 100644 (file)
@@ -20,7 +20,7 @@
 #define EXIT_DELAY     10000
 #define MAX_EXIT_DELAY 999999
 
-extern void Quit(const char *);
+extern void Quit(const char *) __dead2;
 extern void Warn(const char *);
 extern int SendNeedFragIcmp(int, struct ip *, int);
 
index c133b99..807070e 100644 (file)
@@ -134,7 +134,7 @@ int makedir(struct direct *, int);
 void parentready(int);
 void rdfs(daddr_t, int, char *);
 void setblock(struct fs *, unsigned char *, int);
-void started(int);
+void started(int) __dead2;
 void erfs(off_t, off_t);
 void wtfs(daddr_t, int, char *);
 void wtfsflush(void);
index 5e3b659..7b44669 100644 (file)
@@ -74,7 +74,7 @@ struct mntopt mopts[] = {
        MOPT_NULL,
 };
 
-void   fatal(const char *fmt, ...) __printflike(1, 2);
+void   fatal(const char *fmt, ...) __dead2 __printflike(1, 2);
 
 #define        COMPAT                  /* allow non-labeled disks */
 
index b65c30e..a645d02 100644 (file)
@@ -73,17 +73,17 @@ struct nfsd_srvargs nsd;
 pid_t  children[MAXNFSDCNT];   /* PIDs of children */
 int    nfsdcnt;                /* number of children */
 
-void   cleanup(int);
-void   child_cleanup(int);
+void   cleanup(int) __dead2;
+void   child_cleanup(int) __dead2;
 void   killchildren(void);
-void   nfsd_exit(int);
+void   nfsd_exit(int) __dead2;
 void   nonfs(int);
 void   reapchild(int);
 int    setbindhost(struct addrinfo **ia, const char *bindhost,
            struct addrinfo hints);
-void   start_server(int);
+void   start_server(int) __dead2;
 void   unregistration(void);
-void   usage(void);
+void   usage(void) __dead2;
 
 /*
  * Nfs server daemon mostly just a user context for nfssvc()
index 5d961f1..599dd60 100644 (file)
@@ -245,7 +245,7 @@ int  get_pathmtu(struct msghdr *);
 struct in6_pktinfo *get_rcvpktinfo(struct msghdr *);
 void    onsignal(int);
 void    retransmit(void);
-void    onint(int);
+void    onint(int) __dead2;
 size_t  pingerlen(void);
 int     pinger(void);
 const char *pr_addr(struct sockaddr *, int);
@@ -267,7 +267,7 @@ void         summary(void);
 void    tvsub(struct timeval *, struct timeval *);
 int     setpolicy(int, char *);
 char   *nigroup(char *);
-void    usage(void);
+void    usage(void) __dead2;
 
 int
 main(int argc, char **argv)
index de20a2b..66f554a 100644 (file)
@@ -111,7 +111,7 @@ void        *needchk(struct fstab *);
 int     oneof(char *, char*[], int);
 void    resetinodebuf(void);
 int     update(char *, char *, int);
-void    usage(void);
+void    usage(void) __dead2;
 
 int
 main(int argc, char **argv)
index 5bca147..bd64bfb 100644 (file)
@@ -46,7 +46,7 @@
 #include <string.h>
 #include <unistd.h>
 
-void usage(void);
+void usage(void) __dead2;
 u_int get_pageins(void);
 
 int dohalt;
index 8f34b8d..30868c8 100644 (file)
@@ -506,7 +506,7 @@ struct msg_limit {
 extern void    msglim(struct msg_limit *, naddr,
                       const char *, ...) PATTRIB(3,4);
 #define        LOGERR(msg) msglog(msg ": %s", strerror(errno))
-extern void    logbad(int, const char *, ...) PATTRIB(2,3);
+extern void    logbad(int, const char *, ...) __dead2 PATTRIB(2,3);
 #define        BADERR(dump,msg) logbad(dump,msg ": %s", strerror(errno))
 #ifdef DEBUG
 #define        DBGERR(dump,msg) BADERR(dump,msg)
index 9c59f5c..b4d35fc 100644 (file)
@@ -29,7 +29,6 @@
  * @(#) Copyright (c) 1983, 1993 The Regents of the University of California.  All rights reserved.
  * @(#)tunefs.c        8.2 (Berkeley) 4/19/94
  * $FreeBSD: src/sbin/tunefs/tunefs.c,v 1.11.2.5 2001/10/14 21:50:39 iedowse Exp $
- * $DragonFly: src/sbin/tunefs/tunefs.c,v 1.7 2006/04/03 01:58:49 dillon Exp $
  */
 
 /*
@@ -68,7 +67,7 @@ void bwrite(daddr_t, const char *, int);
 int bread(daddr_t, char *, int);
 void getsb(struct fs *, const char *);
 void putsb(struct fs *, const char *, int);
-void usage(void);
+void usage(void) __dead2;
 void printfs(void);
 
 int
index bb13d08..7135558 100644 (file)
@@ -70,7 +70,7 @@ int    sacmp (struct sockaddr *, struct sockaddr *);
 int     umountall (char **);
 int     checkname (char *, char **);
 int     umountfs (char *, char *, char *);
-void    usage (void);
+void    usage (void) __dead2;
 int     xdr_dir (XDR *, char *);
 
 int
index 92e97ae..2287677 100644 (file)
@@ -33,7 +33,6 @@
 /*
  * $Id: vext.h,v 1.17 2000/05/07 04:17:12 grog Exp grog $
  * $FreeBSD: src/sbin/vinum/vext.h,v 1.16.2.2 2000/06/08 01:53:16 grog Exp $
- * $DragonFly: src/sbin/vinum/vext.h,v 1.4 2007/07/29 23:27:34 dillon Exp $
  */
 
 #define MAXARGS 64                                         /* maximum number of args on a line */
@@ -56,7 +55,7 @@ void parseline(int c, char *args[]);                      /* parse a line with c parameters at
 void checkentry(int index);
 int haveargs(int);                                         /* check arg, error message if not valid */
 void setsigs();
-void catchsig(int ignore);
+void catchsig(int ignore) __dead2;
 void vinum_create(int argc, char *argv[], char *arg0[]);
 void vinum_read(int argc, char *argv[], char *arg0[]);
 void vinum_modify(int argc, char *argv[], char *arg0[]);
@@ -79,7 +78,7 @@ void continue_revive(int plexno);
 void vinum_stop(int argc, char *argv[], char *arg0[]);
 void vinum_makedev(int argc, char *argv[], char *arg0[]);
 void vinum_help(int argc, char *argv[], char *arg0[]);
-void vinum_quit(int argc, char *argv[], char *arg0[]);
+void vinum_quit(int argc, char *argv[], char *arg0[]) __dead2;
 void vinum_setdaemon(int argc, char *argv[], char *arg0[]);
 void vinum_replace(int argc, char *argv[], char *arg0[]);
 void vinum_readpol(int argc, char *argv[], char *arg0[]);