mirror of
https://github.com/isc-projects/bind9.git
synced 2026-05-28 04:34:54 -04:00
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
(cherry picked from commit 6d68a22954)
This commit is contained in:
parent
3e74a046db
commit
9ced9a6202
1 changed files with 19 additions and 0 deletions
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Reference in a new issue