diff --git a/dln.c b/dln.c index 77bfe91b2875b5..259433bf1ac94f 100644 --- a/dln.c +++ b/dln.c @@ -463,8 +463,10 @@ dln_load(const char *file) void *handle = dln_open(file); #ifdef RUBY_DLN_CHECK_ABI - unsigned long long (*abi_version_fct)(void) = (unsigned long long(*)(void))dln_sym(handle, "ruby_abi_version"); - unsigned long long binary_abi_version = (*abi_version_fct)(); + typedef unsigned long long abi_version_number; + typedef abi_version_number abi_version_func(void); + abi_version_func *abi_version_fct = (abi_version_func *)dln_sym(handle, "ruby_abi_version"); + abi_version_number binary_abi_version = (*abi_version_fct)(); if (binary_abi_version != ruby_abi_version() && abi_check_enabled_p()) { dln_loaderror("incompatible ABI version of binary - %s", file); }