chiark / gitweb /
_noreturn_ --> noreturn for C11 compat
authorShawn Landden <shawn@churchofgit.com>
Mon, 16 Dec 2013 16:53:53 +0000 (08:53 -0800)
committerLennart Poettering <lennart@poettering.net>
Tue, 17 Dec 2013 20:51:24 +0000 (21:51 +0100)
also define noreturn w/o <stdnoreturn.h>

src/core/main.c
src/journal/test-journal-interleaving.c
src/shared/log.c
src/shared/log.h
src/shared/macro.h
src/shared/pager.c
src/shared/util.c
src/shared/util.h
src/udev/collect/collect.c

index 6c3d9bfb189d071000d120e33e43338be01f1253..eb5413ef3d38f18d9419388c987de17c3c5bb026 100644 (file)
@@ -112,7 +112,7 @@ static FILE* serialization = NULL;
 static void nop_handler(int sig) {
 }
 
-_noreturn_ static void crash(int sig) {
+noreturn static void crash(int sig) {
 
         if (getpid() != 1)
                 /* Pass this on immediately, if this is not PID 1 */
index af0d43e39e77a9bfc4e2bbfd3869a6170cef267a..5b747147827e2cb0643e30451478802b617250dd 100644 (file)
@@ -36,7 +36,7 @@
 
 static bool arg_keep = false;
 
-_noreturn_ static void log_assert_errno(const char *text, int eno, const char *file, int line, const char *func) {
+noreturn static void log_assert_errno(const char *text, int eno, const char *file, int line, const char *func) {
         log_meta(LOG_CRIT, file, line, func,
                  "'%s' failed at %s:%u (%s): %s.",
                  text, file, line, func, strerror(eno));
index 2404de85e32bb849c4b6a55e7fc288043d2f1e6f..2517f5d780d406bfc030fae123a09c99a8daae35 100644 (file)
@@ -702,12 +702,12 @@ static void log_assert(int level, const char *text, const char *file, int line,
 }
 #pragma GCC diagnostic pop
 
-_noreturn_ void log_assert_failed(const char *text, const char *file, int line, const char *func) {
+noreturn void log_assert_failed(const char *text, const char *file, int line, const char *func) {
         log_assert(LOG_CRIT, text, file, line, func, "Assertion '%s' failed at %s:%u, function %s(). Aborting.");
         abort();
 }
 
-_noreturn_ void log_assert_failed_unreachable(const char *text, const char *file, int line, const char *func) {
+noreturn void log_assert_failed_unreachable(const char *text, const char *file, int line, const char *func) {
         log_assert(LOG_CRIT, text, file, line, func, "Code should not be reached '%s' at %s:%u, function %s(). Aborting.");
         abort();
 }
index de0e000371adbbfd081cf9af3bbb04566441497c..3dcfa113085b419a9bac1bbeade37e9acfdcdc54 100644 (file)
@@ -124,13 +124,13 @@ int log_dump_internal(
                 const char *func,
                 char *buffer);
 
-_noreturn_ void log_assert_failed(
+noreturn void log_assert_failed(
                 const char *text,
                 const char *file,
                 int line,
                 const char *func);
 
-_noreturn_ void log_assert_failed_unreachable(
+noreturn void log_assert_failed_unreachable(
                 const char *text,
                 const char *file,
                 int line,
index 2b5b3fdfe0038e3c74e419441f7621f68aad9d29..79bee0396c3a52c4bed07f28f1878915bad8b282 100644 (file)
@@ -30,7 +30,6 @@
 #define _printf_(a,b) __attribute__ ((format (printf, a, b)))
 #define _alloc_(...) __attribute__ ((alloc_size(__VA_ARGS__)))
 #define _sentinel_ __attribute__ ((sentinel))
-#define _noreturn_ __attribute__((noreturn))
 #define _unused_ __attribute__ ((unused))
 #define _destructor_ __attribute__ ((destructor))
 #define _pure_ __attribute__ ((pure))
@@ -300,7 +299,8 @@ do {                                                                    \
                 _found;                                                 \
         })
 
-/* Define C11 thread_local attribute even on older compilers */
+/* Define C11 thread_local attribute even on older gcc compiler
+ * version */
 #ifndef thread_local
 /*
  * Don't break on glibc < 2.16 that doesn't define __STDC_NO_THREADS__
@@ -313,4 +313,14 @@ do {                                                                    \
 #endif
 #endif
 
+/* Define C11 noreturn without <stdnoreturn.h> and even on older gcc
+ * compiler versions */
+#ifndef noreturn
+#if __STDC_VERSION__ >= 201112L
+#define noreturn _Noreturn
+#else
+#define noreturn __attribute__((noreturn))
+#endif
+#endif
+
 #include "log.h"
index 9fa611479cff0cc10b98c7d60ca0dbbfd3e3f00e..72a29f22855ea569a4bbdc8a713ec36a63da07ae 100644 (file)
@@ -32,7 +32,7 @@
 
 static pid_t pager_pid = 0;
 
-_noreturn_ static void pager_fallback(void) {
+noreturn static void pager_fallback(void) {
         ssize_t n;
 
         do {
index 80dbf73c947d4f501503b2cc3626f28c8afff289..2cf9fbe53e6f97c9b48e96f458d192741b185e10 100644 (file)
@@ -3469,7 +3469,7 @@ int wait_for_terminate_and_warn(const char *name, pid_t pid) {
         return -EPROTO;
 }
 
-_noreturn_ void freeze(void) {
+noreturn void freeze(void) {
 
         /* Make sure nobody waits for us on a socket anymore */
         close_all_fds(NULL, 0);
index 1d178260cbe2d8e702fe98afebd268736448ab9c..ddb35181abbdcca5d92e84177cea0e6c2ad50d70 100644 (file)
@@ -426,7 +426,7 @@ char *normalize_env_assignment(const char *s);
 int wait_for_terminate(pid_t pid, siginfo_t *status);
 int wait_for_terminate_and_warn(const char *name, pid_t pid);
 
-_noreturn_ void freeze(void);
+noreturn void freeze(void);
 
 bool null_or_empty(struct stat *st) _pure_;
 int null_or_empty_path(const char *fn);
index 2bbbcd71060b32b8a7a7142947d908adc5f7e3c5..cb5df01c6a66c9269d16bda02e15f390b927d17d 100644 (file)
@@ -61,7 +61,7 @@ static inline struct _mate *node_to_mate(struct udev_list_node *node)
         return container_of(node, struct _mate, node);
 }
 
-_noreturn_ static void sig_alrm(int signo)
+noreturn static void sig_alrm(int signo)
 {
         exit(4);
 }