On 11/01/2016 05:23 PM, william.c.roberts@xxxxxxxxx wrote: > From: William Roberts <william.c.roberts@xxxxxxxxx> > > When building with clang, multiple noreturn issues arise, > for instance: > > selabel_partial_match.c:11:1: error: function 'usage' could be declared with attribute 'noreturn' [-Werror,-Wmissing-noreturn] > > Fix these. Thanks, applied. > > Signed-off-by: William Roberts <william.c.roberts@xxxxxxxxx> > --- > libselinux/utils/avcstat.c | 2 +- > libselinux/utils/getconlist.c | 2 +- > libselinux/utils/getdefaultcon.c | 2 +- > libselinux/utils/getsebool.c | 2 +- > libselinux/utils/matchpathcon.c | 2 +- > libselinux/utils/selabel_digest.c | 2 +- > libselinux/utils/selabel_lookup.c | 2 +- > libselinux/utils/selabel_lookup_best_match.c | 2 +- > libselinux/utils/selabel_partial_match.c | 2 +- > libselinux/utils/selinux_check_securetty_context.c | 2 +- > libselinux/utils/selinux_restorecon.c | 2 +- > libselinux/utils/selinuxexeccon.c | 2 +- > libselinux/utils/setenforce.c | 2 +- > libselinux/utils/togglesebool.c | 2 +- > 14 files changed, 14 insertions(+), 14 deletions(-) > > diff --git a/libselinux/utils/avcstat.c b/libselinux/utils/avcstat.c > index 1d4d5c8..70b3109 100644 > --- a/libselinux/utils/avcstat.c > +++ b/libselinux/utils/avcstat.c > @@ -43,7 +43,7 @@ static char buf[DEF_BUF_SIZE]; > /* selinuxfs mount point */ > extern char *selinux_mnt; > > -static __attribute__((__format__(printf,1,2))) void die(const char *msg, ...) > +static __attribute__((__format__(printf,1,2),__noreturn__)) void die(const char *msg, ...) > { > va_list args; > > diff --git a/libselinux/utils/getconlist.c b/libselinux/utils/getconlist.c > index 872ce05..adec178 100644 > --- a/libselinux/utils/getconlist.c > +++ b/libselinux/utils/getconlist.c > @@ -9,7 +9,7 @@ > #include <selinux/selinux.h> > #include <selinux/get_context_list.h> > > -static void usage(const char *name, const char *detail, int rc) > +static __attribute__ ((__noreturn__)) void usage(const char *name, const char *detail, int rc) > { > fprintf(stderr, "usage: %s [-l level] user [context]\n", name); > if (detail) > diff --git a/libselinux/utils/getdefaultcon.c b/libselinux/utils/getdefaultcon.c > index c6f7151..96a5a8c 100644 > --- a/libselinux/utils/getdefaultcon.c > +++ b/libselinux/utils/getdefaultcon.c > @@ -9,7 +9,7 @@ > #include <selinux/selinux.h> > #include <selinux/get_context_list.h> > > -static void usage(const char *name, const char *detail, int rc) > +static __attribute__ ((__noreturn__)) void usage(const char *name, const char *detail, int rc) > { > fprintf(stderr, "usage: %s [-l level] [-s service] user [fromcon]\n", name); > if (detail) > diff --git a/libselinux/utils/getsebool.c b/libselinux/utils/getsebool.c > index 9ae9243..3c6eba5 100644 > --- a/libselinux/utils/getsebool.c > +++ b/libselinux/utils/getsebool.c > @@ -6,7 +6,7 @@ > #include <string.h> > #include <selinux/selinux.h> > > -static void usage(const char *progname) > +static __attribute__ ((__noreturn__)) void usage(const char *progname) > { > fprintf(stderr, "usage: %s -a or %s boolean...\n", progname, progname); > exit(1); > diff --git a/libselinux/utils/matchpathcon.c b/libselinux/utils/matchpathcon.c > index d1f1348..fca8ee2 100644 > --- a/libselinux/utils/matchpathcon.c > +++ b/libselinux/utils/matchpathcon.c > @@ -12,7 +12,7 @@ > #include <limits.h> > #include <stdlib.h> > > -static void usage(const char *progname) > +static __attribute__ ((__noreturn__)) void usage(const char *progname) > { > fprintf(stderr, > "usage: %s [-N] [-n] [-f file_contexts] [ -P policy_root_path ] [-p prefix] [-Vq] path...\n", > diff --git a/libselinux/utils/selabel_digest.c b/libselinux/utils/selabel_digest.c > index e4d84a5..49408a0 100644 > --- a/libselinux/utils/selabel_digest.c > +++ b/libselinux/utils/selabel_digest.c > @@ -8,7 +8,7 @@ > > static size_t digest_len; > > -static void usage(const char *progname) > +static __attribute__ ((__noreturn__)) void usage(const char *progname) > { > fprintf(stderr, > "usage: %s -b backend [-d] [-v] [-B] [-i] [-f file]\n\n" > diff --git a/libselinux/utils/selabel_lookup.c b/libselinux/utils/selabel_lookup.c > index b678a89..1aef64d 100644 > --- a/libselinux/utils/selabel_lookup.c > +++ b/libselinux/utils/selabel_lookup.c > @@ -6,7 +6,7 @@ > #include <selinux/selinux.h> > #include <selinux/label.h> > > -static void usage(const char *progname) > +static __attribute__ ((__noreturn__)) void usage(const char *progname) > { > fprintf(stderr, > "usage: %s -b backend [-v] [-r] -k key [-t type] [-f file]\n\n" > diff --git a/libselinux/utils/selabel_lookup_best_match.c b/libselinux/utils/selabel_lookup_best_match.c > index d74382f..6a71742 100644 > --- a/libselinux/utils/selabel_lookup_best_match.c > +++ b/libselinux/utils/selabel_lookup_best_match.c > @@ -7,7 +7,7 @@ > #include <selinux/selinux.h> > #include <selinux/label.h> > > -static void usage(const char *progname) > +static __attribute__ ((__noreturn__)) void usage(const char *progname) > { > fprintf(stderr, > "usage: %s [-v] [-r] -p path [-m mode] [-f file] [link...]\n\n" > diff --git a/libselinux/utils/selabel_partial_match.c b/libselinux/utils/selabel_partial_match.c > index 017702d..c5932cb 100644 > --- a/libselinux/utils/selabel_partial_match.c > +++ b/libselinux/utils/selabel_partial_match.c > @@ -7,7 +7,7 @@ > #include <selinux/selinux.h> > #include <selinux/label.h> > > -static void usage(const char *progname) > +static __attribute__ ((__noreturn__)) void usage(const char *progname) > { > fprintf(stderr, > "usage: %s [-v] -p <path> [-f file]\n\n" > diff --git a/libselinux/utils/selinux_check_securetty_context.c b/libselinux/utils/selinux_check_securetty_context.c > index b158eb3..84f5907 100644 > --- a/libselinux/utils/selinux_check_securetty_context.c > +++ b/libselinux/utils/selinux_check_securetty_context.c > @@ -9,7 +9,7 @@ > #include <sys/errno.h> > #include <selinux/selinux.h> > > -static void usage(const char *progname) > +static __attribute__ ((__noreturn__)) void usage(const char *progname) > { > fprintf(stderr, "usage: %s tty_context...\n", progname); > exit(1); > diff --git a/libselinux/utils/selinux_restorecon.c b/libselinux/utils/selinux_restorecon.c > index 7aea81f..4d2b08f 100644 > --- a/libselinux/utils/selinux_restorecon.c > +++ b/libselinux/utils/selinux_restorecon.c > @@ -34,7 +34,7 @@ static int validate_context(char **contextp) > return 0; > } > > -static void usage(const char *progname) > +static __attribute__ ((__noreturn__)) void usage(const char *progname) > { > fprintf(stderr, > "\nusage: %s [-FCnRrdmiIaAsl] [-e dir] [-v|-P]\n" > diff --git a/libselinux/utils/selinuxexeccon.c b/libselinux/utils/selinuxexeccon.c > index e0212e4..b50e788 100644 > --- a/libselinux/utils/selinuxexeccon.c > +++ b/libselinux/utils/selinuxexeccon.c > @@ -8,7 +8,7 @@ > #include <ctype.h> > #include <selinux/selinux.h> > > -static void usage(const char *name, const char *detail, int rc) > +static __attribute__ ((__noreturn__)) void usage(const char *name, const char *detail, int rc) > { > fprintf(stderr, "usage: %s command [ fromcon ]\n", name); > if (detail) > diff --git a/libselinux/utils/setenforce.c b/libselinux/utils/setenforce.c > index df58597..60a20a4 100644 > --- a/libselinux/utils/setenforce.c > +++ b/libselinux/utils/setenforce.c > @@ -6,7 +6,7 @@ > #include <strings.h> > #include <selinux/selinux.h> > > -static void usage(const char *progname) > +static __attribute__ ((__noreturn__)) void usage(const char *progname) > { > fprintf(stderr, "usage: %s [ Enforcing | Permissive | 1 | 0 ]\n", > progname); > diff --git a/libselinux/utils/togglesebool.c b/libselinux/utils/togglesebool.c > index 309f83b..4a7c830 100644 > --- a/libselinux/utils/togglesebool.c > +++ b/libselinux/utils/togglesebool.c > @@ -10,7 +10,7 @@ > > /* Attempt to rollback the transaction. No need to check error > codes since this is rolling back something that blew up. */ > -static void rollback(int argc, char **argv) > +static __attribute__ ((__noreturn__)) void rollback(int argc, char **argv) > { > int i; > > _______________________________________________ Selinux mailing list Selinux@xxxxxxxxxxxxx To unsubscribe, send email to Selinux-leave@xxxxxxxxxxxxx. To get help, send an email containing "help" to Selinux-request@xxxxxxxxxxxxx.