has
OSSL_FUNC_keymgmt_has_fn *has;
if (keymgmt->has == NULL)
keymgmt->has = OSSL_FUNC_keymgmt_has(fns);
|| keymgmt->has == NULL
return keymgmt->has(keydata, selection);
#if has(__builtin_mul_overflow)
#ifndef has
#if has(__builtin_add_overflow)
#if has(__builtin_sub_overflow)
uintmax_t has, want;
has = FUNC(value);
ATF_CHECK_EQ_MSG(has, want, "%s(%#jx) == %#jx != %#jx == %s(%#jx)",
__XSTRING(FUNC), (uintmax_t)value, has, want, __XSTRING(REF), (uintmax_t)value);
has = FUNC(value);
ATF_CHECK_EQ_MSG(has, want, "%s(%#jx) == %#jx != %#jx == %s(%#jx)",
__XSTRING(FUNC), (uintmax_t)value, has, want, __XSTRING(REF), (uintmax_t)value);
has = FUNC(value);
ATF_CHECK_EQ_MSG(has, want, "%s(%#jx) == %#jx != %#jx == %s(%#jx)",
__XSTRING(FUNC), (uintmax_t)value, has, want, __XSTRING(REF), (uintmax_t)value);
has = FUNC(value);
ATF_CHECK_EQ_MSG(has, want, "%s(%#jx) == %#jx != %#jx == %s(%#jx)",
__XSTRING(FUNC), (uintmax_t)value, has, want, __XSTRING(REF), (uintmax_t)value);
struct _cfg has some preallocated space (e.g an array of uint64_t) so simple