[systemd-commits] src/core src/journal src/shared src/udev

Lennart Poettering lennart at kemper.freedesktop.org
Tue Dec 17 12:54:50 PST 2013


 src/core/main.c                         |    2 +-
 src/journal/test-journal-interleaving.c |    2 +-
 src/shared/log.c                        |    4 ++--
 src/shared/log.h                        |    4 ++--
 src/shared/macro.h                      |   14 ++++++++++++--
 src/shared/pager.c                      |    2 +-
 src/shared/util.c                       |    2 +-
 src/shared/util.h                       |    2 +-
 src/udev/collect/collect.c              |    2 +-
 9 files changed, 22 insertions(+), 12 deletions(-)

New commits:
commit 919ce0b7affc6fbd68598b709faf477f56c22ac1
Author: Shawn Landden <shawn at churchofgit.com>
Date:   Mon Dec 16 08:53:53 2013 -0800

    _noreturn_ --> noreturn for C11 compat
    
    also define noreturn w/o <stdnoreturn.h>

diff --git a/src/core/main.c b/src/core/main.c
index 6c3d9bf..eb5413e 100644
--- a/src/core/main.c
+++ b/src/core/main.c
@@ -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 */
diff --git a/src/journal/test-journal-interleaving.c b/src/journal/test-journal-interleaving.c
index af0d43e..5b74714 100644
--- a/src/journal/test-journal-interleaving.c
+++ b/src/journal/test-journal-interleaving.c
@@ -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));
diff --git a/src/shared/log.c b/src/shared/log.c
index 2404de8..2517f5d 100644
--- a/src/shared/log.c
+++ b/src/shared/log.c
@@ -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();
 }
diff --git a/src/shared/log.h b/src/shared/log.h
index de0e000..3dcfa11 100644
--- a/src/shared/log.h
+++ b/src/shared/log.h
@@ -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,
diff --git a/src/shared/macro.h b/src/shared/macro.h
index 2b5b3fd..79bee03 100644
--- a/src/shared/macro.h
+++ b/src/shared/macro.h
@@ -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"
diff --git a/src/shared/pager.c b/src/shared/pager.c
index 9fa6114..72a29f2 100644
--- a/src/shared/pager.c
+++ b/src/shared/pager.c
@@ -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 {
diff --git a/src/shared/util.c b/src/shared/util.c
index 80dbf73..2cf9fbe 100644
--- a/src/shared/util.c
+++ b/src/shared/util.c
@@ -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);
diff --git a/src/shared/util.h b/src/shared/util.h
index 1d17826..ddb3518 100644
--- a/src/shared/util.h
+++ b/src/shared/util.h
@@ -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);
diff --git a/src/udev/collect/collect.c b/src/udev/collect/collect.c
index 2bbbcd7..cb5df01 100644
--- a/src/udev/collect/collect.c
+++ b/src/udev/collect/collect.c
@@ -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);
 }



More information about the systemd-commits mailing list