https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112358

--- Comment #6 from John David Anglin <danglin at gcc dot gnu.org> ---
This note seems bogus:

In function '_dl_find_object_update':
cc1: note: destination object is likely at address zero

bool
_dl_find_object_update (struct link_map *new_map)
{
  /* Copy the newly-loaded link maps into an array for sorting.  */
  size_t count = 0;
  for (struct link_map *l = new_map; l != NULL; l = l->l_next)
    /* Skip proxy maps and already-processed maps.  */
    count += l == l->l_real && !l->l_find_object_processed;
  if (count == 0)
    return true;

  struct link_map **map_array = malloc (count * sizeof (*map_array));
  if (map_array == NULL)
    return false;
  {
    size_t i = 0;
    for (struct link_map *l = new_map; l != NULL; l = l->l_next)
      if (l == l->l_real && !l->l_find_object_processed)
        map_array[i++] = l;
  }

  _dl_find_object_link_map_sort (map_array, count);
  bool ok = _dl_find_object_update_1 (map_array, count);
  free (map_array);
  return ok;
}

If map_array is NULL, _dl_find_object_update returns and
_dl_find_object_update_1 isn't called.

Reply via email to