The continuous integration uncovered this problem: A testdir with modules
'bitset' and 'free-posix' fails to build.
In file included from ../../gllib/bitset.h:31:0,
from ../../gllib/bitset.c:22:
../../gllib/bitset.c: In function ‘bitset_free’:
../../gllib/bitset/base.h:200:18: error: ‘const struct bitset_vtable’ has no
member named ‘rpl_free’
((SRC)->b.vtable->free ? (SRC)->b.vtable->free (SRC) :(void)0)
^
../../gllib/bitset.c:173:7: note: in expansion of macro ‘BITSET_FREE_’
BITSET_FREE_ (bset);
^
../../gllib/bitset/base.h:200:42: error: ‘const struct bitset_vtable’ has no
member named ‘rpl_free’
((SRC)->b.vtable->free ? (SRC)->b.vtable->free (SRC) :(void)0)
^
../../gllib/bitset.c:173:7: note: in expansion of macro ‘BITSET_FREE_’
BITSET_FREE_ (bset);
^
../../gllib/bitset.c: In function ‘bitset_obstack_free’:
../../gllib/bitset/base.h:200:18: error: ‘const struct bitset_vtable’ has no
member named ‘rpl_free’
((SRC)->b.vtable->free ? (SRC)->b.vtable->free (SRC) :(void)0)
^
../../gllib/bitset.c:184:5: note: in expansion of macro ‘BITSET_FREE_’
BITSET_FREE_ (bset);
^
../../gllib/bitset/base.h:200:42: error: ‘const struct bitset_vtable’ has no
member named ‘rpl_free’
((SRC)->b.vtable->free ? (SRC)->b.vtable->free (SRC) :(void)0)
^
../../gllib/bitset.c:184:5: note: in expansion of macro ‘BITSET_FREE_’
BITSET_FREE_ (bset);
^
This patch fixes it.
2020-12-26 Bruno Haible <[email protected]>
bitset: Fix conflict with 'free-posix' module.
* lib/bitset/base.h: Include <stdlib.h>.
diff --git a/lib/bitset/base.h b/lib/bitset/base.h
index fe447c2..ad674ef 100644
--- a/lib/bitset/base.h
+++ b/lib/bitset/base.h
@@ -24,6 +24,7 @@
#include <limits.h>
#include <stdbool.h>
#include <stddef.h>
+#include <stdlib.h> /* because Gnulib's <stdlib.h> may '#define free ...'
*/
#include <string.h> /* ffsl */
#include "attribute.h"