Message ID | 20180220215655.16574-1-clemens.gruber@pqgruber.com |
---|---|
State | New |
Headers | show |
Series | [libgpiod,0.3.x] tools: move function attributes to the header file | expand |
2018-02-20 22:56 GMT+01:00 Clemens Gruber <clemens.gruber@pqgruber.com>: > The attributes should be in the definition in the header file. > Otherwise, the noreturn attribute seems to have no effect and GCC > emits several Wimplicit-fallthrough warnings when compiling libgpiod. > This patch fixes those warnings. > > Signed-off-by: Clemens Gruber <clemens.gruber@pqgruber.com> > --- > [Backported to libgpiod 0.3.x] > > src/tools/tools-common.c | 6 ++---- > src/tools/tools-common.h | 5 +++-- > 2 files changed, 5 insertions(+), 6 deletions(-) > > diff --git a/src/tools/tools-common.c b/src/tools/tools-common.c > index ee4a838..b6ae18e 100644 > --- a/src/tools/tools-common.c > +++ b/src/tools/tools-common.c > @@ -18,8 +18,6 @@ > #include <stdarg.h> > #include <libgen.h> > > -#define NORETURN __attribute__((noreturn)) > - > static char *progname = "unknown"; > > void set_progname(char *name) > @@ -32,7 +30,7 @@ const char * get_progname(void) > return progname; > } > > -void NORETURN PRINTF(1, 2) die(const char *fmt, ...) > +void die(const char *fmt, ...) > { > va_list va; > > @@ -45,7 +43,7 @@ void NORETURN PRINTF(1, 2) die(const char *fmt, ...) > exit(EXIT_FAILURE); > } > > -void NORETURN PRINTF(1, 2) die_perror(const char *fmt, ...) > +void die_perror(const char *fmt, ...) > { > va_list va; > > diff --git a/src/tools/tools-common.h b/src/tools/tools-common.h > index 47dd003..c116df2 100644 > --- a/src/tools/tools-common.h > +++ b/src/tools/tools-common.h > @@ -20,13 +20,14 @@ > */ > > #define UNUSED __attribute__((unused)) > +#define NORETURN __attribute__((noreturn)) > #define PRINTF(fmt, arg) __attribute__((format(printf, fmt, arg))) > #define ARRAY_SIZE(x) (sizeof(x) / sizeof(*(x))) > > void set_progname(char *name); > const char * get_progname(void); > -void die(const char *fmt, ...); > -void die_perror(const char *fmt, ...); > +void die(const char *fmt, ...) NORETURN PRINTF(1, 2); > +void die_perror(const char *fmt, ...) NORETURN PRINTF(1, 2); > void print_version(void); > > #endif /* __GPIOD_TOOLS_COMMON_H__ */ > -- > 2.16.2 > Applied, thanks! -- To unsubscribe from this list: send the line "unsubscribe linux-gpio" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/src/tools/tools-common.c b/src/tools/tools-common.c index ee4a838..b6ae18e 100644 --- a/src/tools/tools-common.c +++ b/src/tools/tools-common.c @@ -18,8 +18,6 @@ #include <stdarg.h> #include <libgen.h> -#define NORETURN __attribute__((noreturn)) - static char *progname = "unknown"; void set_progname(char *name) @@ -32,7 +30,7 @@ const char * get_progname(void) return progname; } -void NORETURN PRINTF(1, 2) die(const char *fmt, ...) +void die(const char *fmt, ...) { va_list va; @@ -45,7 +43,7 @@ void NORETURN PRINTF(1, 2) die(const char *fmt, ...) exit(EXIT_FAILURE); } -void NORETURN PRINTF(1, 2) die_perror(const char *fmt, ...) +void die_perror(const char *fmt, ...) { va_list va; diff --git a/src/tools/tools-common.h b/src/tools/tools-common.h index 47dd003..c116df2 100644 --- a/src/tools/tools-common.h +++ b/src/tools/tools-common.h @@ -20,13 +20,14 @@ */ #define UNUSED __attribute__((unused)) +#define NORETURN __attribute__((noreturn)) #define PRINTF(fmt, arg) __attribute__((format(printf, fmt, arg))) #define ARRAY_SIZE(x) (sizeof(x) / sizeof(*(x))) void set_progname(char *name); const char * get_progname(void); -void die(const char *fmt, ...); -void die_perror(const char *fmt, ...); +void die(const char *fmt, ...) NORETURN PRINTF(1, 2); +void die_perror(const char *fmt, ...) NORETURN PRINTF(1, 2); void print_version(void); #endif /* __GPIOD_TOOLS_COMMON_H__ */
The attributes should be in the definition in the header file. Otherwise, the noreturn attribute seems to have no effect and GCC emits several Wimplicit-fallthrough warnings when compiling libgpiod. This patch fixes those warnings. Signed-off-by: Clemens Gruber <clemens.gruber@pqgruber.com> --- [Backported to libgpiod 0.3.x] src/tools/tools-common.c | 6 ++---- src/tools/tools-common.h | 5 +++-- 2 files changed, 5 insertions(+), 6 deletions(-)