core/socket: use macro to define log_address_error_errno()
authorYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 8 Jan 2019 17:08:24 +0000 (02:08 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 8 Jan 2019 17:09:36 +0000 (02:09 +0900)
Then, it is not necessary to suppress warnings.

Follow-up for ae05e1b6584eb8f48a4530f963fea2c42e891034.

src/core/socket.c

index dd7e5d9..aea56fe 100644 (file)
@@ -1465,16 +1465,13 @@ static int socket_address_listen_do(
                         label);
 }
 
-static int log_address_error_errno(Unit *u, const SocketAddress *address, int error, const char *fmt) {
-        _cleanup_free_ char *t = NULL;
-
-        (void) socket_address_print(address, &t);
-
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wformat-nonliteral"
-        return log_unit_error_errno(u, error, fmt, strna(t));
-#pragma GCC diagnostic pop
-}
+#define log_address_error_errno(u, address, error, fmt)          \
+        ({                                                       \
+                _cleanup_free_ char *_t = NULL;                  \
+                                                                 \
+                (void) socket_address_print(address, &_t);       \
+                log_unit_error_errno(u, error, fmt, strna(_t));  \
+        })
 
 static int socket_address_listen_in_cgroup(
                 Socket *s,