summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2020-05-01 18:12:12 -0700
committerPaul Eggert <eggert@cs.ucla.edu>2020-05-03 13:49:20 -0700
commitc08f85d74f2964c00613930342bfa27f971fc2be (patch)
tree23fcb7481abab5e59a9d62e7aae2d73a7d2f0b8f /modules
parent2ac33b29fc09f72a18eb08829eb142eb86428747 (diff)
downloadgnulib-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/attribute19
-rw-r--r--modules/backup-rename1
-rw-r--r--modules/backupfile1
-rw-r--r--modules/c-vasnprintf1
-rw-r--r--modules/fnmatch1
-rw-r--r--modules/freopen-safer1
-rw-r--r--modules/fts1
-rw-r--r--modules/mbrtoc321
-rw-r--r--modules/mbrtowc1
-rw-r--r--modules/nstrftime1
-rw-r--r--modules/quotearg1
-rw-r--r--modules/savewd1
-rw-r--r--modules/unistdio/u16-u16-vasnprintf1
-rw-r--r--modules/unistdio/u16-vasnprintf1
-rw-r--r--modules/unistdio/u32-u32-vasnprintf1
-rw-r--r--modules/unistdio/u32-vasnprintf1
-rw-r--r--modules/unistdio/u8-u8-vasnprintf1
-rw-r--r--modules/unistdio/u8-vasnprintf1
-rw-r--r--modules/unistdio/ulc-vasnprintf1
-rw-r--r--modules/unistr/u8-uctomb1
-rw-r--r--modules/vasnprintf1
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