diff --git a/src/net/address.hpp b/src/net/address.hpp
index 39f236af8a4674e6e1c32ba0d4de970290c60b18..cd7b21a9612111a19e5d0f3dec6439bb72d75a12 100644
--- a/src/net/address.hpp
+++ b/src/net/address.hpp
@@ -481,6 +481,13 @@ static constexpr bool is_valid_ip6addr(const char (&str)[N])
 
 }
 
+// Work around use of non-standard feature (not part of ISO-C++)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wpedantic"
+#ifdef __clang__
+#pragma GCC diagnostic ignored "-Wgnu-string-literal-operator-template"
+#endif
+
 template <typename CharT, CharT... Cs>
 static constexpr auto operator"" _ipaddr()
 {
@@ -513,6 +520,8 @@ static constexpr auto operator"" _ip6()
     return rmrf::net::inet_pton<AF_INET6>(str);
 }
 
+#pragma GCC diagnostic pop
+
 static constexpr uint16_t operator "" _ipport(unsigned long long port)
 {
     if (port > 65535) {