2021-08-07 Bruno Haible <[email protected]>
bitsetv: Improve GCC 11 allocation-deallocation checking.
* lib/bitsetv.h (bitsetv_free): Move declaration up.
(bitsetv_alloc, bitsetv_create): Declare that deallocation must happen
through 'bitsetv_free'.
diff --git a/lib/bitsetv.h b/lib/bitsetv.h
index 72bf277..2ab9b80 100644
--- a/lib/bitsetv.h
+++ b/lib/bitsetv.h
@@ -25,16 +25,18 @@
typedef bitset * bitsetv;
+/* Free vector of bitsets. Do nothing if NULL. */
+void bitsetv_free (bitsetv);
+
/* Create a vector of N_VECS bitsets, each of N_BITS, and of
type TYPE. */
-bitsetv bitsetv_alloc (bitset_bindex, bitset_bindex, enum bitset_type);
+bitsetv bitsetv_alloc (bitset_bindex, bitset_bindex, enum bitset_type)
+ _GL_ATTRIBUTE_DEALLOC (bitsetv_free, 1);
/* Create a vector of N_VECS bitsets, each of N_BITS, and with
attribute hints specified by ATTR. */
-bitsetv bitsetv_create (bitset_bindex, bitset_bindex, unsigned);
-
-/* Free vector of bitsets. Do nothing if NULL. */
-void bitsetv_free (bitsetv);
+bitsetv bitsetv_create (bitset_bindex, bitset_bindex, unsigned)
+ _GL_ATTRIBUTE_DEALLOC (bitsetv_free, 1);
/* Zero vector of bitsets. */
void bitsetv_zero (bitsetv);