bind/bind-define-local-instances-of-FALLTHROUGH-and-UNREACHABLE.patch

39 lines
1011 B
Diff

Index: bind-9.18.2/contrib/dlz/modules/include/dlz_minimal.h
===================================================================
--- bind-9.18.2.orig/contrib/dlz/modules/include/dlz_minimal.h
+++ bind-9.18.2/contrib/dlz/modules/include/dlz_minimal.h
@@ -27,6 +27,7 @@
#include <inttypes.h>
#include <stdbool.h>
+#include <stdlib.h>
#include <arpa/inet.h>
#include <net/if.h>
@@ -85,6 +86,25 @@ typedef uint32_t dns_ttl_t;
var = _u.v; \
} while (0)
+
+#if !defined(__has_attribute)
+#define __has_attribute(x) 0
+#endif /* if !defined(__has_attribute) */
+
+#if __GNUC__ >= 7 || __has_attribute(fallthrough)
+#define FALLTHROUGH __attribute__((fallthrough))
+#else
+/* clang-format off */
+#define FALLTHROUGH do {} while (0) /* FALLTHROUGH */
+/* clang-format on */
+#endif
+
+#ifdef __GNUC__
+#define UNREACHABLE() __builtin_unreachable()
+#else
+#define UNREACHABLE() abort()
+#endif
+
/* opaque structures */
typedef void *dns_sdlzlookup_t;
typedef void *dns_sdlzallnodes_t;