+2020-10-10 Bruno Haible <bruno@clisp.org>
+
+ *-list, *-oset, *-omap: Avoid possible compiler warnings.
+ Reported by Marc Nieper-Wißkirchen in
+ <https://lists.gnu.org/r/bug-gnulib/2020-10/msg00025.html>.
+ * lib/gl_anylinked_list2.h (gl_linked_iterator,
+ gl_linked_iterator_from_to): Mark as 'pure'.
+ (gl_linked_iterator_free): Mark as 'const'.
+ * lib/gl_anytree_list2.h (gl_tree_size, gl_tree_node_value,
+ gl_tree_search_from_to, gl_tree_indexof_from_to, gl_tree_iterator,
+ gl_tree_iterator_from_to, gl_tree_sortedlist_search,
+ gl_tree_sortedlist_search_from_to, gl_tree_sortedlist_indexof,
+ gl_tree_sortedlist_indexof_from_to): Mark as 'pure'.
+ (gl_tree_iterator_free): Mark as 'const'.
+ * lib/gl_anytree_omap.h (gl_tree_size, gl_tree_iterator): Mark as
+ 'pure'.
+ (gl_tree_iterator_free): Mark as 'const'.
+ * lib/gl_anytree_oset.h (gl_tree_size, gl_tree_next_node,
+ gl_tree_prev_node, gl_tree_iterator): Mark as 'pure'.
+ (gl_tree_iterator_free): Mark as 'const'.
+ * lib/gl_anytreehash_list1.h (node_position, compare_by_position,
+ compare_position_threshold): Mark as 'pure'.
+ * lib/gl_array_list.c (gl_array_size, gl_array_indexof_from_to,
+ gl_array_search_from_to, gl_array_iterator, gl_array_iterator_from_to,
+ gl_array_sortedlist_indexof_from_to, gl_array_sortedlist_indexof,
+ gl_array_sortedlist_search_from_to, gl_array_sortedlist_search): Mark as
+ 'pure'.
+ (gl_array_iterator_free): Mark as 'const'.
+ * lib/gl_array_omap.c (gl_array_size, gl_array_indexof, gl_array_search,
+ gl_array_search_atleast, gl_array_iterator): Mark as 'pure'.
+ (gl_array_iterator_free): Mark as 'const'.
+ * lib/gl_array_oset.c (gl_array_size, gl_array_indexof, gl_array_search,
+ gl_array_indexof_atleast, gl_array_search_atleast, gl_array_iterator,
+ gl_array_iterator_atleast): Mark as 'pure'.
+ (gl_array_iterator_free): Mark as 'const'.
+ * lib/gl_carray_list.c (gl_carray_size, gl_carray_node_value,
+ gl_carray_next_node, gl_carray_previous_node, gl_carray_get_at,
+ gl_carray_indexof_from_to, gl_carray_search_from_to, gl_carray_iterator,
+ gl_carray_iterator_from_to, gl_carray_sortedlist_indexof_from_to,
+ gl_carray_sortedlist_indexof, gl_carray_sortedlist_search_from_to,
+ gl_carray_sortedlist_search): Mark as 'pure'.
+ (gl_carray_iterator_free): Mark as 'const'.
+
2020-10-10 Bruno Haible <bruno@clisp.org>
rbtree-list: Avoid possible compiler warnings.
/* --------------------- gl_list_iterator_t Data Type --------------------- */
-static gl_list_iterator_t
+static gl_list_iterator_t _GL_ATTRIBUTE_PURE
gl_linked_iterator (gl_list_t list)
{
gl_list_iterator_t result;
return result;
}
-static gl_list_iterator_t
+static gl_list_iterator_t _GL_ATTRIBUTE_PURE
gl_linked_iterator_from_to (gl_list_t list,
size_t start_index, size_t end_index)
{
return false;
}
-static void
+static void _GL_ATTRIBUTE_CONST
gl_linked_iterator_free (gl_list_iterator_t *iterator _GL_ATTRIBUTE_MAYBE_UNUSED)
{
}
#endif
}
-static size_t
+static size_t _GL_ATTRIBUTE_PURE
gl_tree_size (gl_list_t list)
{
return (list->root != NULL ? list->root->branch_size : 0);
}
-static const void *
+static const void * _GL_ATTRIBUTE_PURE
gl_tree_node_value (gl_list_t list _GL_ATTRIBUTE_MAYBE_UNUSED,
gl_list_node_t node)
{
#if !WITH_HASHTABLE
-static gl_list_node_t
+static gl_list_node_t _GL_ATTRIBUTE_PURE
gl_tree_search_from_to (gl_list_t list, size_t start_index, size_t end_index,
const void *elt)
{
}
}
-static size_t
+static size_t _GL_ATTRIBUTE_PURE
gl_tree_indexof_from_to (gl_list_t list, size_t start_index, size_t end_index,
const void *elt)
{
/* --------------------- gl_list_iterator_t Data Type --------------------- */
-static gl_list_iterator_t
+static gl_list_iterator_t _GL_ATTRIBUTE_PURE
gl_tree_iterator (gl_list_t list)
{
gl_list_iterator_t result;
return result;
}
-static gl_list_iterator_t
+static gl_list_iterator_t _GL_ATTRIBUTE_PURE
gl_tree_iterator_from_to (gl_list_t list, size_t start_index, size_t end_index)
{
size_t count = (list->root != NULL ? list->root->branch_size : 0);
return false;
}
-static void
+static void _GL_ATTRIBUTE_CONST
gl_tree_iterator_free (gl_list_iterator_t *iterator _GL_ATTRIBUTE_MAYBE_UNUSED)
{
}
/* ---------------------- Sorted gl_list_t Data Type ---------------------- */
-static gl_list_node_t
+static gl_list_node_t _GL_ATTRIBUTE_PURE
gl_tree_sortedlist_search (gl_list_t list, gl_listelement_compar_fn compar,
const void *elt)
{
return NULL;
}
-static gl_list_node_t
+static gl_list_node_t _GL_ATTRIBUTE_PURE
gl_tree_sortedlist_search_from_to (gl_list_t list,
gl_listelement_compar_fn compar,
size_t low, size_t high,
return NULL;
}
-static size_t
+static size_t _GL_ATTRIBUTE_PURE
gl_tree_sortedlist_indexof (gl_list_t list, gl_listelement_compar_fn compar,
const void *elt)
{
return (size_t)(-1);
}
-static size_t
+static size_t _GL_ATTRIBUTE_PURE
gl_tree_sortedlist_indexof_from_to (gl_list_t list,
gl_listelement_compar_fn compar,
size_t low, size_t high,
return map;
}
-static size_t
+static size_t _GL_ATTRIBUTE_PURE
gl_tree_size (gl_omap_t map)
{
return map->count;
/* --------------------- gl_omap_iterator_t Data Type --------------------- */
-static gl_omap_iterator_t
+static gl_omap_iterator_t _GL_ATTRIBUTE_PURE
gl_tree_iterator (gl_omap_t map)
{
gl_omap_iterator_t result;
return false;
}
-static void
-gl_tree_iterator_free (gl_omap_iterator_t *iterator)
+static void _GL_ATTRIBUTE_CONST
+gl_tree_iterator_free (gl_omap_iterator_t *iterator _GL_ATTRIBUTE_MAYBE_UNUSED)
{
}
return set;
}
-static size_t
+static size_t _GL_ATTRIBUTE_PURE
gl_tree_size (gl_oset_t set)
{
return set->count;
}
/* Returns the next node in the tree, or NULL if there is none. */
-static inline gl_oset_node_t
+static inline gl_oset_node_t _GL_ATTRIBUTE_PURE
gl_tree_next_node (gl_oset_node_t node)
{
if (node->right != NULL)
}
/* Returns the previous node in the tree, or NULL if there is none. */
-static inline gl_oset_node_t
+static inline gl_oset_node_t _GL_ATTRIBUTE_PURE
gl_tree_prev_node (gl_oset_node_t node)
{
if (node->left != NULL)
/* --------------------- gl_oset_iterator_t Data Type --------------------- */
-static gl_oset_iterator_t
+static gl_oset_iterator_t _GL_ATTRIBUTE_PURE
gl_tree_iterator (gl_oset_t set)
{
gl_oset_iterator_t result;
return false;
}
-static void
-gl_tree_iterator_free (gl_oset_iterator_t *iterator _GL_ATTRIBUTE_MAYBE_UNUSED)
+static void _GL_ATTRIBUTE_CONST
+gl_tree_iterator_free (gl_oset_iterator_t *iterator _GL_ATTRIBUTE_MAYBE_UNUSED)
{
}
#define MULTIPLE_NODES_MAGIC (void *) -1
/* Returns the position of the given node in the tree. */
-static size_t
+static size_t _GL_ATTRIBUTE_PURE
node_position (gl_list_node_t node)
{
size_t position = 0;
}
/* Compares two nodes by their position in the tree. */
-static int
+static int _GL_ATTRIBUTE_PURE
compare_by_position (const void *x1, const void *x2)
{
gl_list_node_t node1 = (gl_list_node_t) x1;
}
/* Compares a node's position in the tree with a given threshold. */
-static bool
+static bool _GL_ATTRIBUTE_PURE
compare_position_threshold (const void *x, const void *threshold)
{
gl_list_node_t node = (gl_list_node_t) x;
return NULL;
}
-static size_t
+static size_t _GL_ATTRIBUTE_PURE
gl_array_size (gl_list_t list)
{
return list->count;
return INDEX_TO_NODE (position);
}
-static size_t
+static size_t _GL_ATTRIBUTE_PURE
gl_array_indexof_from_to (gl_list_t list, size_t start_index, size_t end_index,
const void *elt)
{
return (size_t)(-1);
}
-static gl_list_node_t
+static gl_list_node_t _GL_ATTRIBUTE_PURE
gl_array_search_from_to (gl_list_t list, size_t start_index, size_t end_index,
const void *elt)
{
/* --------------------- gl_list_iterator_t Data Type --------------------- */
-static gl_list_iterator_t
+static gl_list_iterator_t _GL_ATTRIBUTE_PURE
gl_array_iterator (gl_list_t list)
{
gl_list_iterator_t result;
return result;
}
-static gl_list_iterator_t
+static gl_list_iterator_t _GL_ATTRIBUTE_PURE
gl_array_iterator_from_to (gl_list_t list, size_t start_index, size_t end_index)
{
gl_list_iterator_t result;
return false;
}
-static void
-gl_array_iterator_free (gl_list_iterator_t *iterator _GL_UNUSED)
+static void _GL_ATTRIBUTE_CONST
+gl_array_iterator_free (gl_list_iterator_t *iterator _GL_ATTRIBUTE_MAYBE_UNUSED)
{
}
/* ---------------------- Sorted gl_list_t Data Type ---------------------- */
-static size_t
+static size_t _GL_ATTRIBUTE_PURE
gl_array_sortedlist_indexof_from_to (gl_list_t list,
gl_listelement_compar_fn compar,
size_t low, size_t high,
return (size_t)(-1);
}
-static size_t
+static size_t _GL_ATTRIBUTE_PURE
gl_array_sortedlist_indexof (gl_list_t list, gl_listelement_compar_fn compar,
const void *elt)
{
elt);
}
-static gl_list_node_t
+static gl_list_node_t _GL_ATTRIBUTE_PURE
gl_array_sortedlist_search_from_to (gl_list_t list,
gl_listelement_compar_fn compar,
size_t low, size_t high,
return INDEX_TO_NODE (index);
}
-static gl_list_node_t
+static gl_list_node_t _GL_ATTRIBUTE_PURE
gl_array_sortedlist_search (gl_list_t list, gl_listelement_compar_fn compar,
const void *elt)
{
return map;
}
-static size_t
+static size_t _GL_ATTRIBUTE_PURE
gl_array_size (gl_omap_t map)
{
return map->count;
}
-static size_t
+static size_t _GL_ATTRIBUTE_PURE
gl_array_indexof (gl_omap_t map, const void *key)
{
size_t count = map->count;
return (size_t)(-1);
}
-static bool
+static bool _GL_ATTRIBUTE_PURE
gl_array_search (gl_omap_t map, const void *key, const void **valuep)
{
size_t index = gl_array_indexof (map, key);
return false;
}
-static bool
+static bool _GL_ATTRIBUTE_PURE
gl_array_search_atleast (gl_omap_t map,
gl_mapkey_threshold_fn threshold_fn,
const void *threshold,
/* ---------------------- gl_omap_iterator_t Data Type ---------------------- */
-static gl_omap_iterator_t
+static gl_omap_iterator_t _GL_ATTRIBUTE_PURE
gl_array_iterator (gl_omap_t map)
{
gl_omap_iterator_t result;
return false;
}
-static void
-gl_array_iterator_free (gl_omap_iterator_t *iterator)
+static void _GL_ATTRIBUTE_CONST
+gl_array_iterator_free (gl_omap_iterator_t *iterator _GL_ATTRIBUTE_MAYBE_UNUSED)
{
}
return set;
}
-static size_t
+static size_t _GL_ATTRIBUTE_PURE
gl_array_size (gl_oset_t set)
{
return set->count;
}
-static size_t
+static size_t _GL_ATTRIBUTE_PURE
gl_array_indexof (gl_oset_t set, const void *elt)
{
size_t count = set->count;
return (size_t)(-1);
}
-static bool
+static bool _GL_ATTRIBUTE_PURE
gl_array_search (gl_oset_t set, const void *elt)
{
return gl_array_indexof (set, elt) != (size_t)(-1);
by the THRESHOLD_FN.
Returns the position at which it was found, or gl_list_size (SET) if not
found. */
-static size_t
+static size_t _GL_ATTRIBUTE_PURE
gl_array_indexof_atleast (gl_oset_t set,
gl_setelement_threshold_fn threshold_fn,
const void *threshold)
return count;
}
-static bool
+static bool _GL_ATTRIBUTE_PURE
gl_array_search_atleast (gl_oset_t set,
gl_setelement_threshold_fn threshold_fn,
const void *threshold,
/* --------------------- gl_oset_iterator_t Data Type --------------------- */
-static gl_oset_iterator_t
+static gl_oset_iterator_t _GL_ATTRIBUTE_PURE
gl_array_iterator (gl_oset_t set)
{
gl_oset_iterator_t result;
return result;
}
-static gl_oset_iterator_t
+static gl_oset_iterator_t _GL_ATTRIBUTE_PURE
gl_array_iterator_atleast (gl_oset_t set,
gl_setelement_threshold_fn threshold_fn,
const void *threshold)
return false;
}
-static void
-gl_array_iterator_free (gl_oset_iterator_t *iterator)
+static void _GL_ATTRIBUTE_CONST
+gl_array_iterator_free (gl_oset_iterator_t *iterator _GL_ATTRIBUTE_MAYBE_UNUSED)
{
}
return NULL;
}
-static size_t
+static size_t _GL_ATTRIBUTE_PURE
gl_carray_size (gl_list_t list)
{
return list->count;
}
-static const void *
+static const void * _GL_ATTRIBUTE_PURE
gl_carray_node_value (gl_list_t list, gl_list_node_t node)
{
uintptr_t index = NODE_TO_INDEX (node);
return 0;
}
-static gl_list_node_t
+static gl_list_node_t _GL_ATTRIBUTE_PURE
gl_carray_next_node (gl_list_t list, gl_list_node_t node)
{
uintptr_t index = NODE_TO_INDEX (node);
return NULL;
}
-static gl_list_node_t
+static gl_list_node_t _GL_ATTRIBUTE_PURE
gl_carray_previous_node (gl_list_t list, gl_list_node_t node)
{
uintptr_t index = NODE_TO_INDEX (node);
return NULL;
}
-static const void *
+static const void * _GL_ATTRIBUTE_PURE
gl_carray_get_at (gl_list_t list, size_t position)
{
size_t count = list->count;
return INDEX_TO_NODE (position);
}
-static size_t
+static size_t _GL_ATTRIBUTE_PURE
gl_carray_indexof_from_to (gl_list_t list, size_t start_index, size_t end_index,
const void *elt)
{
return (size_t)(-1);
}
-static gl_list_node_t
+static gl_list_node_t _GL_ATTRIBUTE_PURE
gl_carray_search_from_to (gl_list_t list, size_t start_index, size_t end_index,
const void *elt)
{
/* --------------------- gl_list_iterator_t Data Type --------------------- */
-static gl_list_iterator_t
+static gl_list_iterator_t _GL_ATTRIBUTE_PURE
gl_carray_iterator (gl_list_t list)
{
gl_list_iterator_t result;
return result;
}
-static gl_list_iterator_t
+static gl_list_iterator_t _GL_ATTRIBUTE_PURE
gl_carray_iterator_from_to (gl_list_t list, size_t start_index, size_t end_index)
{
gl_list_iterator_t result;
return false;
}
-static void
-gl_carray_iterator_free (gl_list_iterator_t *iterator)
+static void _GL_ATTRIBUTE_CONST
+gl_carray_iterator_free (gl_list_iterator_t *iterator _GL_ATTRIBUTE_MAYBE_UNUSED)
{
}
/* ---------------------- Sorted gl_list_t Data Type ---------------------- */
-static size_t
+static size_t _GL_ATTRIBUTE_PURE
gl_carray_sortedlist_indexof_from_to (gl_list_t list,
gl_listelement_compar_fn compar,
size_t low, size_t high,
return (size_t)(-1);
}
-static size_t
+static size_t _GL_ATTRIBUTE_PURE
gl_carray_sortedlist_indexof (gl_list_t list, gl_listelement_compar_fn compar,
const void *elt)
{
elt);
}
-static gl_list_node_t
+static gl_list_node_t _GL_ATTRIBUTE_PURE
gl_carray_sortedlist_search_from_to (gl_list_t list,
gl_listelement_compar_fn compar,
size_t low, size_t high,
return INDEX_TO_NODE (index);
}
-static gl_list_node_t
+static gl_list_node_t _GL_ATTRIBUTE_PURE
gl_carray_sortedlist_search (gl_list_t list, gl_listelement_compar_fn compar,
const void *elt)
{