From: Franck Bui Date: Thu, 15 Mar 2018 05:23:46 +0000 (+0100) Subject: basic/macros: rename noreturn into _noreturn_ (#8456) X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=fde3d03b393fa9429596449ea749b1de36a7b9e5;p=elogind.git basic/macros: rename noreturn into _noreturn_ (#8456) "noreturn" is reserved and can be used in other header files we include: [ 16s] In file included from /usr/include/gcrypt.h:30:0, [ 16s] from ../src/journal/journal-file.h:26, [ 16s] from ../src/journal/journal-vacuum.c:31: [ 16s] /usr/include/gpg-error.h:1544:46: error: expected ‘,’ or ‘;’ before ‘)’ token [ 16s] void gpgrt_log_bug (const char *fmt, ...) GPGRT_ATTR_NR_PRINTF(1,2); Here we include grcrypt.h (which in turns include gpg-error.h) *after* we "noreturn" was defined in macro.h. (cherry picked from commit 848e863acc51ecfb0f3955c498874588201d9130) --- diff --git a/src/basic/log.c b/src/basic/log.c index 1ec3faea8..5011af392 100644 --- a/src/basic/log.c +++ b/src/basic/log.c @@ -830,7 +830,7 @@ static void log_assert( log_dispatch_internal(level, 0, file, line, func, NULL, NULL, NULL, NULL, buffer); } -noreturn void log_assert_failed_realm( +_noreturn_ void log_assert_failed_realm( LogRealm realm, const char *text, const char *file, @@ -842,7 +842,7 @@ noreturn void log_assert_failed_realm( abort(); } -noreturn void log_assert_failed_unreachable_realm( +_noreturn_ void log_assert_failed_unreachable_realm( LogRealm realm, const char *text, const char *file, diff --git a/src/basic/log.h b/src/basic/log.h index c09e44ad5..3a3c43edc 100644 --- a/src/basic/log.h +++ b/src/basic/log.h @@ -188,7 +188,7 @@ int log_dump_internal( char *buffer); /* Logging for various assertions */ -noreturn void log_assert_failed_realm( +_noreturn_ void log_assert_failed_realm( LogRealm realm, const char *text, const char *file, @@ -197,7 +197,7 @@ noreturn void log_assert_failed_realm( #define log_assert_failed(text, ...) \ log_assert_failed_realm(LOG_REALM, (text), __VA_ARGS__) -noreturn void log_assert_failed_unreachable_realm( +_noreturn_ void log_assert_failed_unreachable_realm( LogRealm realm, const char *text, const char *file, diff --git a/src/basic/macro.h b/src/basic/macro.h index 89bdd852a..1c64ea195 100644 --- a/src/basic/macro.h +++ b/src/basic/macro.h @@ -53,6 +53,15 @@ #else #define _fallthrough_ #endif +/* Define C11 noreturn without and even on older gcc + * compiler versions */ +#ifndef _noreturn_ +#if __STDC_VERSION__ >= 201112L +#define _noreturn_ _Noreturn +#else +#define _noreturn_ __attribute__((noreturn)) +#endif +#endif /* Temporarily disable some warnings */ #define DISABLE_WARNING_DECLARATION_AFTER_STATEMENT \ @@ -414,16 +423,7 @@ static inline unsigned long ALIGN_POWER2(unsigned long u) { #endif #endif -/* Define C11 noreturn without and even on older gcc - * compiler versions */ -#ifndef noreturn -#if __STDC_VERSION__ >= 201112L -#define noreturn _Noreturn #else -#define noreturn __attribute__((noreturn)) -#endif -#endif - #define DEFINE_TRIVIAL_CLEANUP_FUNC(type, func) \ static inline void func##p(type *p) { \ if (*p) \ diff --git a/src/basic/process-util.c b/src/basic/process-util.c index d3961bfd2..81c4077c8 100644 --- a/src/basic/process-util.c +++ b/src/basic/process-util.c @@ -996,7 +996,7 @@ bool is_main_thread(void) { } #if 0 /// UNNEEDED by elogind -noreturn void freeze(void) { +_noreturn_ void freeze(void) { log_close(); diff --git a/src/basic/process-util.h b/src/basic/process-util.h index 50074feb2..b17aef8bd 100644 --- a/src/basic/process-util.h +++ b/src/basic/process-util.h @@ -98,7 +98,7 @@ int pid_from_same_root_fs(pid_t pid); bool is_main_thread(void); #if 0 /// UNNEEDED by elogind -noreturn void freeze(void); +_noreturn_ void freeze(void); bool oom_score_adjust_is_valid(int oa); #endif // 0 diff --git a/src/shared/pager.c b/src/shared/pager.c index 7a4df09df..2598c1eaa 100644 --- a/src/shared/pager.c +++ b/src/shared/pager.c @@ -47,7 +47,7 @@ static int stored_stderr = -1; static bool stdout_redirected = false; static bool stderr_redirected = false; -noreturn static void pager_fallback(void) { +_noreturn_ static void pager_fallback(void) { int r; r = copy_bytes(STDIN_FILENO, STDOUT_FILENO, (uint64_t) -1, 0);