-static inline int validate_decl_func(PSI_Validator *V, decl *decl, decl_arg *func)
-{
- if (!strcmp(func->var->name, "dlsym")) {
- V->error(PSI_WARNING, "Cannot dlsym dlsym (sic!)");
- return 0;
- }
-
- if (!validate_decl_type(V, func, func->type)) {
- return 0;
- }
-#ifndef RTLD_NEXT
-# define RTLD_NEXT ((void *) -1l)
-#endif
- decl->dlptr = dlsym(V->dlopened ?: RTLD_NEXT, func->var->name);
- if (!decl->dlptr) {
- V->error(PSI_WARNING, "Failed to located symbol '%s': %s",
- func->var->name, dlerror());
- }
- return 1;
-}