[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
The attribute module
From: |
Akim Demaille |
Subject: |
The attribute module |
Date: |
Sat, 9 May 2020 10:40:46 +0200 |
Hi all,
Bison started to use the new attribute module, but it generates conflicts with
other modules, because one definition comes from config.h, and another from the
other module's file. For instance:
> In file included from ../lib/bitsetv.c:21:
> In file included from ../lib/bitsetv.h:24:
> In file included from ../lib/bitset.h:31:
> In file included from ../lib/bitset/base.h:28:
> ../lib/xalloc.h:43:10: warning: '_GL_ATTRIBUTE_ALLOC_SIZE' macro redefined
> [-Wmacro-redefined]
> # define _GL_ATTRIBUTE_ALLOC_SIZE(args)
> ^
> ./lib/config.h:1657:10: note: previous definition is here
> # define _GL_ATTRIBUTE_ALLOC_SIZE(args) __attribute__ ((__alloc_size__ args))
> ^
I can provide a patch to address this, but I don't know what's the guideline
here. Should (virtually) all the modules eventually depend on "attribute" and
stop defining these macros themselves, or should their macro definitions be
robust to the now possibly existing macros?
Also, what's the rule inside gnulib to decide whether to use _GL_ATTRIBUTE_FOO
rather than using attribute.h and ATTRIBUTE_FOO?
Cheers!
- The attribute module,
Akim Demaille <=