__has_extension
#if !defined(__has_extension)
#if __has_extension(__builtin_expect) || HEIM_REQUIRE_GNUC(3,0,0)
#if __clang__ && defined __has_extension
#define ECB_CLANG_EXTENSION(x) __has_extension (x)
__has_extension(c_generic_selections)
#if !defined(__has_extension)
#if __has_extension(deprecated) || KRB5TYPES_REQUIRE_GNUC(3,1,0)
#if __has_extension(format) || KRB5TYPES_REQUIRE_GNUC(3,1,0)
#if __has_extension(noreturn) || KRB5TYPES_REQUIRE_GNUC(3,1,0)
#if __has_extension(unused) || KRB5TYPES_REQUIRE_GNUC(3,1,0)
__has_extension(c_generic_selections)
#if __STDC_VERSION__ >= 201112L || __has_extension(c_generic_selections)
__has_extension(c_generic_selections)
#if !__has_extension(c_alignas)
__has_extension(cxx_alignas)
#if !__has_extension(c_static_assert)
__has_extension(cxx_static_assert)
#if !__has_extension(c_thread_local)
__has_extension(cxx_thread_local)
__has_extension(c_generic_selections)
#ifndef __has_extension
#if __has_extension(c_thread_safety_attributes)
#if (__has_extension(c_atomic) || __has_extension(cxx_atomic)) && \
#if __has_extension(c_static_assert)
#ifndef __has_extension
#if __has_extension(c_static_assert)