Use modern C and modern compiler features [v9.18]
This MR consists of several commits that introduce modern C or modern compiler features (with fallbacks):
- Gcc 7+/Clang 10+ have
__attribute__((__fallthrough__))
, use that asFALLTHROUGH;
macro - Use
__builtin_unreachable()
forISC_UNREACHABLE();
macro and mergeINSIST(0); ISC_UNREACHABLE();
just toUNREACHABLE();
- Use C11
noreturn
with fallback to__attribute__((__noreturn__))
- Remove use of the
inline
keyword used as a suggestion to the compiler - Remove workarounds for ancient versions of clang (<< 4.0.1)
Backport of !5480 (merged)
Edited by Michał Kępień