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.