if (h == -1) h = _dl_string_platform (ptr + 1); if (h == -1) break;
if (h == (uint64_t) -1) { h = _dl_string_platform (ptr + 1); if (h == (uint64_t) -1) break; }
path_hwcap (const char *path){  char *str = xstrdup (path);  char *ptr;  uint64_t hwcap = 0;  uint64_t h;  size_t len;  len = strlen (str);  if (str[len] == '/')    str[len] = '\0';  /* Search pathname from the end and check for hwcap strings.  */  for (;;)    {      ptr = strrchr (str, '/');      if (ptr == NULL)	break;      h = _dl_string_hwcap (ptr + 1);      if (h == -1)	h = _dl_string_platform (ptr + 1);      if (h == -1)	break;      hwcap += 1ULL << h;      /* Search the next part of the path.  */      *ptr = '\0';    }  free (str);  return hwcap;}