diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2020-05-01 18:12:12 -0700 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2020-05-03 13:49:20 -0700 |
commit | c08f85d74f2964c00613930342bfa27f971fc2be (patch) | |
tree | 23fcb7481abab5e59a9d62e7aae2d73a7d2f0b8f /modules | |
parent | 2ac33b29fc09f72a18eb08829eb142eb86428747 (diff) | |
download | gnulib-c08f85d74f2964c00613930342bfa27f971fc2be.tar.gz |
attribute: new module
This simplifies use of GCC and C2X attributes like ‘deprecated’.
* MODULES.html.sh: Add attribute.
* doc/attribute.texi, lib/attribute.h, modules/attribute: New files.
* doc/gnulib.texi (Particular Modules): Add Attributes.
* lib/backupfile.c, lib/fnmatch.c, lib/freopen-safer.c:
* lib/mbrtoc32.c, lib/mbrtowc.c, lib/nstrftime.c, lib/quotearg.c:
* lib/savewd.c, lib/unistr/u8-uctomb-aux.c, lib/unistr/u8-uctomb.c:
* lib/vasnprintf.c:
Include attribute.h, and let it define FALLTHROUGH.
* lib/bitset/base.h, lib/c-stack.c (__attribute__): Remove macro.
* lib/bitset/base.h (ATTRIBUTE_UNUSED): Define in terms of
_GL_ATTRIBUTE_MAYBE_UNUSED, for forwards compatibility to C2X.
* lib/dfa.c (FALLTHROUGH): Define consistently with gl_COMMON_BODY.
This is a copy since Gawk doesn’t use Gnulib.
* lib/di-set.h (_GL_ATTRIBUTE_NONNULL): Remove definition that
is incompatible with gl_COMMON_BODY’s. All uses changed.
* lib/fts.c: Include attribte.h, for FALLTHROUGH.
Keep the existing FALLTHROUGH definition since Glibc might use it,
and it does no harm to Gnulib’s FALLTHROUGH.
* lib/fts_.h, lib/inttostr.h:
(__GNUC_PREREQ): Remove; no longer needed.
(__attribute_warn_unused_result__): Remove. All uses
replaced by _GL_ATTRIBUTE_NODISCARD.
* lib/gl_list.h, lib/gl_map.h, lib/gl_omap.h, lib/gl_oset.h:
* lib/gl_set.h: Prefer _GL_ATTRIBUTE_NODISCARD to an ifdeffed
__attribute__ ((__warn_unused_result__)), for forward
compatibility to C2X.
* lib/hash.h (_GL_ATTRIBUTE_WUR): Remove. All uses replaced by
_GL_ATTRIBUTE_NODISCARD.
(_GL_ATTRIBUTE_DEPRECATED): Remove, since gl_COMMON_BODY defines it.
* lib/ino-map.h (_GL_ATTRIBUTE_NONNULL): Remove. All uses
replaced by gl_COMMON_BODY’s implementation, which has a
slightly different signature.
* lib/safe-alloc.h (_GL_ATTRIBUTE_RETURN_CHECK):
Remove. All uses replaced by _GL_ATTRIBUTE_NODISCARD.
* lib/unused-parameter.h (_GL_UNUSED_PARAMETER):
Define in terms of _GL_ATTRIBUTE_MAYBE_UNUSED.
No doubt all uses should be replaced, at some point.
* m4/gnulib-common.m4 (_GL_GNUC_PREREQ): New macro.
(_Noreturn): Use it.
(_GL_HAS_ATTRIBUTE, _GL_ATTRIBUTE_ALLOC_SIZE)
(_GL_ATTRIBUTE_ALWAYS_INLINE, _GL_ATTRIBUTE_ARTIFICIAL)
(_GL_ATTRIBUTE_COLD)
(_GL_ATTRIBUTE_DEPRECATED, _GL_ATTRIBUTE_ERROR)
(_GL_ATTRIBUTE_WARNING, _GL_ATTRIBUTE_EXTERNALLY_VISIBLE)
(_GL_ATTRIBUTE_FALLTHROUGH, _GL_ATTRIBUTE_FORMAT)
(_GL_ATTRIBUTE_LEAF, _GL_ATTRIBUTE_MAY_ALIAS)
(_GL_ATTRIBUTE_MAYBE_UNUSED)
(_GL_ATTRIBUTE_NODISCARD, _GL_ATTRIBUTE_NOINLINE)
(_GL_ATTRIBUTE_NONNULL, _GL_ATTRIBUTE_NONSTRING)
(_GL_ATTRIBUTE_NOTHROW, _GL_ATTRIBUTE_PACKED, _GL_ATTRIBUTE_PURE)
(_GL_ATTRIBUTE_SENTINEL): New macros.
* modules/backup-rename, modules/backupfile, modules/c-vasnprintf:
* modules/fnmatch, modules/freopen-safer, modules/fts:
* modules/mbrtoc32, modules/mbrtowc, modules/nstrftime:
* modules/quotearg, modules/savewd:
* modules/unistdio/u16-u16-vasnprintf:
* modules/unistdio/u16-vasnprintf:
* modules/unistdio/u32-u32-vasnprintf:
* modules/unistdio/u32-vasnprintf:
* modules/unistdio/u8-u8-vasnprintf:
* modules/unistdio/u8-vasnprintf:
* modules/unistdio/ulc-vasnprintf:
* modules/unistr/u8-uctomb, modules/vasnprintf:
(Depends-on:): Add attribute module.
Diffstat (limited to 'modules')
-rw-r--r-- | modules/attribute | 19 | ||||
-rw-r--r-- | modules/backup-rename | 1 | ||||
-rw-r--r-- | modules/backupfile | 1 | ||||
-rw-r--r-- | modules/c-vasnprintf | 1 | ||||
-rw-r--r-- | modules/fnmatch | 1 | ||||
-rw-r--r-- | modules/freopen-safer | 1 | ||||
-rw-r--r-- | modules/fts | 1 | ||||
-rw-r--r-- | modules/mbrtoc32 | 1 | ||||
-rw-r--r-- | modules/mbrtowc | 1 | ||||
-rw-r--r-- | modules/nstrftime | 1 | ||||
-rw-r--r-- | modules/quotearg | 1 | ||||
-rw-r--r-- | modules/savewd | 1 | ||||
-rw-r--r-- | modules/unistdio/u16-u16-vasnprintf | 1 | ||||
-rw-r--r-- | modules/unistdio/u16-vasnprintf | 1 | ||||
-rw-r--r-- | modules/unistdio/u32-u32-vasnprintf | 1 | ||||
-rw-r--r-- | modules/unistdio/u32-vasnprintf | 1 | ||||
-rw-r--r-- | modules/unistdio/u8-u8-vasnprintf | 1 | ||||
-rw-r--r-- | modules/unistdio/u8-vasnprintf | 1 | ||||
-rw-r--r-- | modules/unistdio/ulc-vasnprintf | 1 | ||||
-rw-r--r-- | modules/unistr/u8-uctomb | 1 | ||||
-rw-r--r-- | modules/vasnprintf | 1 |
21 files changed, 39 insertions, 0 deletions
diff --git a/modules/attribute b/modules/attribute new file mode 100644 index 0000000000..fcb0442c72 --- /dev/null +++ b/modules/attribute @@ -0,0 +1,19 @@ +Description: +C/C++ attributes + +Files: +lib/attribute.h + +Depends-on: + +configure.ac: + +Makefile.am: + +Include: + +License: +LGPLv2+ + +Maintainer: +all diff --git a/modules/backup-rename b/modules/backup-rename index 0d6c34bd51..1e29b73bed 100644 --- a/modules/backup-rename +++ b/modules/backup-rename @@ -10,6 +10,7 @@ m4/backupfile.m4 Depends-on: argmatch +attribute closedir d-ino dirent-safer diff --git a/modules/backupfile b/modules/backupfile index 7916d6adcb..dc46d76872 100644 --- a/modules/backupfile +++ b/modules/backupfile @@ -10,6 +10,7 @@ m4/backupfile.m4 Depends-on: argmatch +attribute closedir d-ino dirent-safer diff --git a/modules/c-vasnprintf b/modules/c-vasnprintf index 391d9647ff..5fe1fa7d6e 100644 --- a/modules/c-vasnprintf +++ b/modules/c-vasnprintf @@ -22,6 +22,7 @@ m4/math_h.m4 m4/exponentd.m4 Depends-on: +attribute isnand-nolibm isnanl-nolibm frexpl-nolibm diff --git a/modules/fnmatch b/modules/fnmatch index 50a2c71830..c7977b4fb3 100644 --- a/modules/fnmatch +++ b/modules/fnmatch @@ -10,6 +10,7 @@ m4/fnmatch.m4 Depends-on: fnmatch-h alloca [test $HAVE_FNMATCH = 0 || test $REPLACE_FNMATCH = 1] +attribute [test $HAVE_FNMATCH = 0 || test $REPLACE_FNMATCH = 1] builtin-expect [test $HAVE_FNMATCH = 0 || test $REPLACE_FNMATCH = 1] flexmember [test $HAVE_FNMATCH = 0 || test $REPLACE_FNMATCH = 1] stdbool [test $HAVE_FNMATCH = 0 || test $REPLACE_FNMATCH = 1] diff --git a/modules/freopen-safer b/modules/freopen-safer index bfeb0ce88f..8b1e8655a2 100644 --- a/modules/freopen-safer +++ b/modules/freopen-safer @@ -7,6 +7,7 @@ lib/stdio-safer.h lib/freopen-safer.c Depends-on: +attribute dup2 freopen open diff --git a/modules/fts b/modules/fts index 3e09bcc910..480700b1ca 100644 --- a/modules/fts +++ b/modules/fts @@ -8,6 +8,7 @@ lib/fts-cycle.c m4/fts.m4 Depends-on: +attribute closedir cycle-check d-ino diff --git a/modules/mbrtoc32 b/modules/mbrtoc32 index cf418464eb..e99c0f0a0f 100644 --- a/modules/mbrtoc32 +++ b/modules/mbrtoc32 @@ -18,6 +18,7 @@ m4/visibility.m4 Depends-on: uchar +attribute [test $HAVE_MBRTOC32 = 0 || test $REPLACE_MBRTOC32 = 1] hard-locale [{ test $HAVE_MBRTOC32 = 0 || test $REPLACE_MBRTOC32 = 1; } && test $REPLACE_MBSTATE_T = 0] mbrtowc [{ test $HAVE_MBRTOC32 = 0 || test $REPLACE_MBRTOC32 = 1; } && test $REPLACE_MBSTATE_T = 0] localcharset [test $HAVE_MBRTOC32 = 0 || test $REPLACE_MBRTOC32 = 1] diff --git a/modules/mbrtowc b/modules/mbrtowc index 294050f94b..0b6478e90e 100644 --- a/modules/mbrtowc +++ b/modules/mbrtowc @@ -22,6 +22,7 @@ m4/visibility.m4 Depends-on: wchar extensions +attribute [test $HAVE_MBRTOWC = 0 || test $REPLACE_MBRTOWC = 1] stdint [test $HAVE_MBRTOWC = 0 || test $REPLACE_MBRTOWC = 1] hard-locale [{ test $HAVE_MBRTOWC = 0 || test $REPLACE_MBRTOWC = 1; } && test $REPLACE_MBSTATE_T = 0] mbsinit [{ test $HAVE_MBRTOWC = 0 || test $REPLACE_MBRTOWC = 1; } && test $REPLACE_MBSTATE_T = 0] diff --git a/modules/nstrftime b/modules/nstrftime index a1ce1b33f6..7ff82896ba 100644 --- a/modules/nstrftime +++ b/modules/nstrftime @@ -8,6 +8,7 @@ m4/tm_gmtoff.m4 m4/nstrftime.m4 Depends-on: +attribute extensions intprops stdbool diff --git a/modules/quotearg b/modules/quotearg index 9d9276ed1e..6f5356dcc6 100644 --- a/modules/quotearg +++ b/modules/quotearg @@ -10,6 +10,7 @@ m4/mbrtowc.m4 m4/quotearg.m4 Depends-on: +attribute c-strcaseeq extensions gettext-h diff --git a/modules/savewd b/modules/savewd index 935540cbd9..198596ef67 100644 --- a/modules/savewd +++ b/modules/savewd @@ -8,6 +8,7 @@ m4/savewd.m4 Depends-on: assure +attribute chdir errno extern-inline diff --git a/modules/unistdio/u16-u16-vasnprintf b/modules/unistdio/u16-u16-vasnprintf index 6997f372f4..cae63721b7 100644 --- a/modules/unistdio/u16-u16-vasnprintf +++ b/modules/unistdio/u16-u16-vasnprintf @@ -30,6 +30,7 @@ unistr/u16-strlen unistr/u16-strmblen unistr/u32-strlen unistr/u32-strmblen +attribute isnand-nolibm isnanl-nolibm frexpl-nolibm diff --git a/modules/unistdio/u16-vasnprintf b/modules/unistdio/u16-vasnprintf index 29c82a6b98..940ff2eaee 100644 --- a/modules/unistdio/u16-vasnprintf +++ b/modules/unistdio/u16-vasnprintf @@ -30,6 +30,7 @@ unistr/u16-strlen unistr/u16-strmblen unistr/u32-strlen unistr/u32-strmblen +attribute isnand-nolibm isnanl-nolibm frexpl-nolibm diff --git a/modules/unistdio/u32-u32-vasnprintf b/modules/unistdio/u32-u32-vasnprintf index 58f657997f..358cb73e6b 100644 --- a/modules/unistdio/u32-u32-vasnprintf +++ b/modules/unistdio/u32-u32-vasnprintf @@ -30,6 +30,7 @@ unistr/u16-strlen unistr/u16-strmblen unistr/u32-strlen unistr/u32-strmblen +attribute isnand-nolibm isnanl-nolibm frexpl-nolibm diff --git a/modules/unistdio/u32-vasnprintf b/modules/unistdio/u32-vasnprintf index be0c3cd11b..2167c4781d 100644 --- a/modules/unistdio/u32-vasnprintf +++ b/modules/unistdio/u32-vasnprintf @@ -30,6 +30,7 @@ unistr/u16-strlen unistr/u16-strmblen unistr/u32-strlen unistr/u32-strmblen +attribute isnand-nolibm isnanl-nolibm frexpl-nolibm diff --git a/modules/unistdio/u8-u8-vasnprintf b/modules/unistdio/u8-u8-vasnprintf index 57ed3fe76d..6ac98b63b9 100644 --- a/modules/unistdio/u8-u8-vasnprintf +++ b/modules/unistdio/u8-u8-vasnprintf @@ -30,6 +30,7 @@ unistr/u16-strlen unistr/u16-strmblen unistr/u32-strlen unistr/u32-strmblen +attribute isnand-nolibm isnanl-nolibm frexpl-nolibm diff --git a/modules/unistdio/u8-vasnprintf b/modules/unistdio/u8-vasnprintf index 884179032b..7a6654003c 100644 --- a/modules/unistdio/u8-vasnprintf +++ b/modules/unistdio/u8-vasnprintf @@ -30,6 +30,7 @@ unistr/u16-strlen unistr/u16-strmblen unistr/u32-strlen unistr/u32-strmblen +attribute isnand-nolibm isnanl-nolibm frexpl-nolibm diff --git a/modules/unistdio/ulc-vasnprintf b/modules/unistdio/ulc-vasnprintf index 750602f861..9c8f48f408 100644 --- a/modules/unistdio/ulc-vasnprintf +++ b/modules/unistdio/ulc-vasnprintf @@ -27,6 +27,7 @@ unistr/u16-strlen unistr/u16-strmblen unistr/u32-strlen unistr/u32-strmblen +attribute mbsnlen isnand-nolibm isnanl-nolibm diff --git a/modules/unistr/u8-uctomb b/modules/unistr/u8-uctomb index c32b2d6b03..7cc94e0da7 100644 --- a/modules/unistr/u8-uctomb +++ b/modules/unistr/u8-uctomb @@ -7,6 +7,7 @@ lib/unistr/u8-uctomb-aux.c Depends-on: unistr/base +attribute configure.ac: gl_MODULE_INDICATOR([unistr/u8-uctomb]) diff --git a/modules/vasnprintf b/modules/vasnprintf index de8537acb7..893ce974b6 100644 --- a/modules/vasnprintf +++ b/modules/vasnprintf @@ -22,6 +22,7 @@ m4/exponentd.m4 Depends-on: alloca-opt +attribute float stdint xsize |