tools: move function attributes to the header file
authorClemens Gruber <clemens.gruber@pqgruber.com>
Tue, 20 Feb 2018 16:57:32 +0000 (17:57 +0100)
committerBartosz Golaszewski <bartekgola@gmail.com>
Tue, 20 Feb 2018 21:18:43 +0000 (22:18 +0100)
The attributes must be located next to function declarations 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>
Signed-off-by: Bartosz Golaszewski <bartekgola@gmail.com>
src/tools/tools-common.c
src/tools/tools-common.h

index 4c138a85c6e884e910866d141ce9079b313c6c28..1bc17e261970a25bd1ac8e7e9d0de2c70d0c4dbe 100644 (file)
 #include <libgen.h>
 #include <errno.h>
 
-#define NORETURN               __attribute__((noreturn))
-
 const char * get_progname(void)
 {
        return program_invocation_name;
 }
 
-void NORETURN PRINTF(1, 2) die(const char *fmt, ...)
+void die(const char *fmt, ...)
 {
        va_list va;
 
@@ -41,7 +39,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;
 
index 0f8e92b228afa79734a3a3dffcef07dc9edfa9c3..dad18a444586ef37c4566d4008b2beaca8476756 100644 (file)
  * common code.
  */
 
+#define NORETURN               __attribute__((noreturn))
 #define PRINTF(fmt, arg)       __attribute__((format(printf, fmt, arg)))
 #define ARRAY_SIZE(x)          (sizeof(x) / sizeof(*(x)))
 
 #define GETOPT_NULL_LONGOPT    NULL, 0, NULL, 0
 
 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__ */