From: Bruno Haible Date: Sat, 7 Aug 2021 17:10:38 +0000 (+0200) Subject: bitset: Improve GCC 11 allocation-deallocation checking. X-Git-Tag: v1.0~2710 X-Git-Url: https://gitweb.git.savannah.gnu.org/gitweb/?a=commitdiff_plain;h=a8b11d9c7ad1633ed9a1af1beae1ae718ddd199e;p=gnulib.git bitset: Improve GCC 11 allocation-deallocation checking. * lib/bitset.h (bitset_free): Move declaration up. (bitset_alloc, bitset_create): Declare that deallocation must happen through 'bitset_free'. (bitset_obstack_free): Move declaration up. (bitset_obstack_alloc): Declare that deallocation must happen through 'bitset_obstack_free'. --- diff --git a/ChangeLog b/ChangeLog index e07fc85bda..6e4d3c2062 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2021-08-07 Bruno Haible + + bitset: Improve GCC 11 allocation-deallocation checking. + * lib/bitset.h (bitset_free): Move declaration up. + (bitset_alloc, bitset_create): Declare that deallocation must happen + through 'bitset_free'. + (bitset_obstack_free): Move declaration up. + (bitset_obstack_alloc): Declare that deallocation must happen through + 'bitset_obstack_free'. + 2021-08-07 Bruno Haible argv-iter: Improve GCC 11 allocation-deallocation checking. diff --git a/lib/bitset.h b/lib/bitset.h index 97d9ad0c2d..abbfdd1bdf 100644 --- a/lib/bitset.h +++ b/lib/bitset.h @@ -96,6 +96,9 @@ typedef struct } bitset_iterator; +/* Free bitset. Do nothing if NULL. */ +void bitset_free (bitset); + /* Return bytes required for bitset of desired type and size. */ size_t bitset_bytes (enum bitset_type, bitset_bindex); @@ -107,21 +110,21 @@ bitset bitset_init (bitset, bitset_bindex, enum bitset_type); enum bitset_type bitset_type_choose (bitset_bindex, bitset_attrs); /* Create a bitset of desired type and size. The bitset is zeroed. */ -bitset bitset_alloc (bitset_bindex, enum bitset_type); +bitset bitset_alloc (bitset_bindex, enum bitset_type) + _GL_ATTRIBUTE_DEALLOC (bitset_free, 1); -/* Free bitset. Do nothing if NULL. */ -void bitset_free (bitset); +/* Free bitset allocated on obstack. Do nothing if NULL. */ +void bitset_obstack_free (bitset); /* Create a bitset of desired type and size using an obstack. The bitset is zeroed. */ bitset bitset_obstack_alloc (struct obstack *bobstack, - bitset_bindex, enum bitset_type); - -/* Free bitset allocated on obstack. Do nothing if NULL. */ -void bitset_obstack_free (bitset); + bitset_bindex, enum bitset_type) + _GL_ATTRIBUTE_DEALLOC (bitset_obstack_free, 1); /* Create a bitset of desired size and attributes. The bitset is zeroed. */ -bitset bitset_create (bitset_bindex, bitset_attrs); +bitset bitset_create (bitset_bindex, bitset_attrs) + _GL_ATTRIBUTE_DEALLOC (bitset_free, 1); /* Return bitset type. */ enum bitset_type bitset_type_get (bitset);