As it is mentioned in #4515, strncpy() warning needs
to be suppressed so it does not fail the build with
-DENABLE_WERROR=ON.
Closes: #4515
---
src/systemd.c | 2 ++
src/systemd.h | 13 +++++++++++++
2 files changed, 15 insertions(+)
diff --git a/src/systemd.c b/src/systemd.c
index 6686c3ce0..8e81b274c 100644
--- a/src/systemd.c
+++ b/src/systemd.c
@@ -117,7 +117,9 @@ int systemd_notify(const char *message) {
.sun_family = AF_UNIX,
};
+ WSTRINGOP_TRUNC_OFF
strncpy(sa.sun_path, sd_unix_path, sizeof(sa.sun_path));
+ WSTRINGOP_TRUNC_ON
if (sa.sun_path[0] == '@')
sa.sun_path[0] = '\0';
diff --git a/src/systemd.h b/src/systemd.h
index 861a9af35..854405847 100644
--- a/src/systemd.h
+++ b/src/systemd.h
@@ -107,4 +107,17 @@ systemd_snotify(const char *format, ...);
} /* extern "C" */
#endif /* defined(__cplusplus) */
+#ifdef __GNUC__
+#if __GNUC__ >= 8
+#define WSTRINGOP_TRUNC_OFF \
+ _Pragma ("GCC diagnostic push") \
+ _Pragma ("GCC diagnostic ignored \"-Wstringop-truncation\"")
+#define WSTRINGOP_TRUNC_ON \
+ _Pragma ("GCC diagnostic pop")
+#endif
+#else
+#define WSTRINGOP_TRUNC_OFF
+#define WSTRINGOP_TRUNC_ON
+#endif
+
#endif /* TARANTOOL_SYSTEMD_H_INCLUDED */
--
2.24.0