Define local instances of FALLTHROUGH and UNREACHABLE
FALLTHOUGH is a copy of how it is defined in <isc/util.h> UNREACHABLE follows the model used in MacOS /usr/include/c++/v1/cstdlib to determine if __builtin_ureachable is available
This commit is contained in:
@@ -27,6 +27,7 @@
|
||||
|
||||
#include <inttypes.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include <arpa/inet.h>
|
||||
#include <net/if.h>
|
||||
@@ -85,6 +86,24 @@ 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;
|
||||
|
||||
Reference in New Issue
Block a user