diff --git a/libs/libc/dirent/lib_ftw.c b/libs/libc/dirent/lib_ftw.c index 4356c837f60..1d5284f1003 100644 --- a/libs/libc/dirent/lib_ftw.c +++ b/libs/libc/dirent/lib_ftw.c @@ -35,5 +35,12 @@ int ftw(FAR const char *path, ftw_cb_t fn, int fdlimit) * actually undefined, but works on all real-world machines. */ - return nftw(path, (nftw_cb_t)fn, fdlimit, FTW_PHYS); + union + { + ftw_cb_t ftw; + nftw_cb_t nftw; + } u; + + u.ftw = fn; + return nftw(path, u.nftw, fdlimit, FTW_PHYS); }