794d16fcac
Signed-off-by: Stefan Becker <chemobejk@gmail.com> Tested-by: Joseph Kogut <joseph.kogut@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
202 lines
7.0 KiB
Diff
202 lines
7.0 KiB
Diff
From 848e863acc51ecfb0f3955c498874588201d9130 Mon Sep 17 00:00:00 2001
|
||
From: Franck Bui <fbui@suse.com>
|
||
Date: Thu, 15 Mar 2018 06:23:46 +0100
|
||
Subject: [PATCH] basic/macros: rename noreturn into _noreturn_ (#8456)
|
||
MIME-Version: 1.0
|
||
Content-Type: text/plain; charset=UTF-8
|
||
Content-Transfer-Encoding: 8bit
|
||
|
||
"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.
|
||
|
||
Upstream: https://github.com/systemd/systemd/pull/8456
|
||
Signed-off-by: Stefan Becker <chemobejk@gmail.com>
|
||
---
|
||
src/basic/log.c | 4 ++--
|
||
src/basic/log.h | 4 ++--
|
||
src/basic/macro.h | 19 +++++++++----------
|
||
src/basic/process-util.c | 2 +-
|
||
src/basic/process-util.h | 2 +-
|
||
src/core/main.c | 4 ++--
|
||
src/journal/test-journal-interleaving.c | 2 +-
|
||
src/shared/pager.c | 2 +-
|
||
src/udev/collect/collect.c | 2 +-
|
||
9 files changed, 20 insertions(+), 21 deletions(-)
|
||
|
||
diff --git a/src/basic/log.c b/src/basic/log.c
|
||
index 7a7f2cbec13..16a2431c548 100644
|
||
--- a/src/basic/log.c
|
||
+++ b/src/basic/log.c
|
||
@@ -814,7 +814,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,
|
||
@@ -826,7 +826,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 efcf0f1bfc1..314be128a23 100644
|
||
--- a/src/basic/log.h
|
||
+++ b/src/basic/log.h
|
||
@@ -186,7 +186,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,
|
||
@@ -195,7 +195,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 95be63a2040..8911edfc4be 100644
|
||
--- a/src/basic/macro.h
|
||
+++ b/src/basic/macro.h
|
||
@@ -53,6 +53,15 @@
|
||
#else
|
||
#define _fallthrough_
|
||
#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
|
||
|
||
/* Temporarily disable some warnings */
|
||
#define DISABLE_WARNING_DECLARATION_AFTER_STATEMENT \
|
||
@@ -414,16 +423,6 @@ static inline unsigned long ALIGN_POWER2(unsigned long u) {
|
||
#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
|
||
-
|
||
#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 aa9846db5dc..e6120af5b68 100644
|
||
--- a/src/basic/process-util.c
|
||
+++ b/src/basic/process-util.c
|
||
@@ -987,7 +987,7 @@ bool is_main_thread(void) {
|
||
return cached > 0;
|
||
}
|
||
|
||
-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 93029e36e5f..5170adec7bb 100644
|
||
--- a/src/basic/process-util.h
|
||
+++ b/src/basic/process-util.h
|
||
@@ -91,7 +91,7 @@ int pid_from_same_root_fs(pid_t pid);
|
||
|
||
bool is_main_thread(void);
|
||
|
||
-noreturn void freeze(void);
|
||
+_noreturn_ void freeze(void);
|
||
|
||
bool oom_score_adjust_is_valid(int oa);
|
||
|
||
diff --git a/src/core/main.c b/src/core/main.c
|
||
index 076846a41c0..4b2d1492373 100644
|
||
--- a/src/core/main.c
|
||
+++ b/src/core/main.c
|
||
@@ -141,7 +141,7 @@ static uint64_t arg_default_tasks_max = UINT64_MAX;
|
||
static sd_id128_t arg_machine_id = {};
|
||
static EmergencyAction arg_cad_burst_action = EMERGENCY_ACTION_REBOOT_FORCE;
|
||
|
||
-noreturn static void freeze_or_reboot(void) {
|
||
+_noreturn_ static void freeze_or_reboot(void) {
|
||
|
||
if (arg_crash_reboot) {
|
||
log_notice("Rebooting in 10s...");
|
||
@@ -156,7 +156,7 @@ noreturn static void freeze_or_reboot(void) {
|
||
freeze();
|
||
}
|
||
|
||
-noreturn static void crash(int sig) {
|
||
+_noreturn_ static void crash(int sig) {
|
||
struct sigaction sa;
|
||
pid_t pid;
|
||
|
||
diff --git a/src/journal/test-journal-interleaving.c b/src/journal/test-journal-interleaving.c
|
||
index 5a88b2774fa..d87bdbdd32a 100644
|
||
--- a/src/journal/test-journal-interleaving.c
|
||
+++ b/src/journal/test-journal-interleaving.c
|
||
@@ -37,7 +37,7 @@
|
||
|
||
static bool arg_keep = false;
|
||
|
||
-noreturn static void log_assert_errno(const char *text, int error, const char *file, int line, const char *func) {
|
||
+_noreturn_ static void log_assert_errno(const char *text, int error, const char *file, int line, const char *func) {
|
||
log_internal(LOG_CRIT, error, file, line, func,
|
||
"'%s' failed at %s:%u (%s): %m", text, file, line, func);
|
||
abort();
|
||
diff --git a/src/shared/pager.c b/src/shared/pager.c
|
||
index 75db3c985bd..681af9c40e3 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);
|
||
diff --git a/src/udev/collect/collect.c b/src/udev/collect/collect.c
|
||
index 2821640e93b..c8fa47b3d7d 100644
|
||
--- a/src/udev/collect/collect.c
|
||
+++ b/src/udev/collect/collect.c
|
||
@@ -58,7 +58,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);
|
||
}
|