bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] argp: better 'inline'


From: Paul Eggert
Subject: [PATCH] argp: better 'inline'
Date: Tue, 18 Dec 2012 18:01:55 -0800
User-agent: Mozilla/5.0 (X11; Linux i686; rv:17.0) Gecko/17.0 Thunderbird/17.0

Use extern-inline module to declare extern inline functions.
This avoids some bogus warning diagnostics.  Problem discovered
when modifying GNU tar to use the manywarnings module.
* lib/argp.h, lib/argp-xinl.c (ARGP_EI) [!_LIBC]:
* lib/argp-fmtstream.h, lib/argp-fs-xinl.c (ARGP_FS_EI) [!_LIBC]:
Define based on extern-inline.
* modules/argp (Depends-on): Add extern-inline.
---
 ChangeLog            | 11 +++++++++++
 lib/argp-fmtstream.h |  5 +++++
 lib/argp-fs-xinl.c   |  6 +++++-
 lib/argp-xinl.c      |  6 +++++-
 lib/argp.h           |  5 +++++
 modules/argp         |  1 +
 6 files changed, 32 insertions(+), 2 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index a2d2b23..b9e213b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2012-12-18  Paul Eggert  <address@hidden>
+
+       argp: better 'inline'
+       Use extern-inline module to declare extern inline functions.
+       This avoids some bogus warning diagnostics.  Problem discovered
+       when modifying GNU tar to use the manywarnings module.
+       * lib/argp.h, lib/argp-xinl.c (ARGP_EI) [!_LIBC]:
+       * lib/argp-fmtstream.h, lib/argp-fs-xinl.c (ARGP_FS_EI) [!_LIBC]:
+       Define based on extern-inline.
+       * modules/argp (Depends-on): Add extern-inline.
+
 2012-12-17  Paul Eggert  <address@hidden>
filemode, sys_stat: Handle MPX files a la AIX.
diff --git a/lib/argp-fmtstream.h b/lib/argp-fmtstream.h
index a891c3d..3de0979 100644
--- a/lib/argp-fmtstream.h
+++ b/lib/argp-fmtstream.h
@@ -197,6 +197,10 @@ extern int __argp_fmtstream_ensure (argp_fmtstream_t __fs, 
size_t __amount);
 #define __argp_fmtstream_point argp_fmtstream_point
 #define __argp_fmtstream_update _argp_fmtstream_update
 #define __argp_fmtstream_ensure _argp_fmtstream_ensure
+_GL_INLINE_HEADER_BEGIN
+#ifndef ARGP_FS_EI
+# define ARGP_FS_EI _GL_INLINE
+#endif
 #endif
#ifndef ARGP_FS_EI
@@ -345,6 +349,7 @@ __argp_fmtstream_point (argp_fmtstream_t __fs)
 #undef __argp_fmtstream_point
 #undef __argp_fmtstream_update
 #undef __argp_fmtstream_ensure
+_GL_INLINE_HEADER_END
 #endif
#endif /* __OPTIMIZE__ */
diff --git a/lib/argp-fs-xinl.c b/lib/argp-fs-xinl.c
index b030e58..408e5d0 100644
--- a/lib/argp-fs-xinl.c
+++ b/lib/argp-fs-xinl.c
@@ -20,7 +20,11 @@
 # include <config.h>
 #endif
-#define ARGP_FS_EI
+#ifdef _LIBC
+# define ARGP_FS_EI
+#else
+# define ARGP_FS_EI _GL_EXTERN_INLINE
+#endif
 #undef __OPTIMIZE__
 #define __OPTIMIZE__ 1
 #include "argp-fmtstream.h"
diff --git a/lib/argp-xinl.c b/lib/argp-xinl.c
index 7d45fcb..731833d 100644
--- a/lib/argp-xinl.c
+++ b/lib/argp-xinl.c
@@ -27,7 +27,11 @@
 #ifndef __USE_EXTERN_INLINES
 # define __USE_EXTERN_INLINES   1
 #endif
-#define ARGP_EI
+#ifdef _LIBC
+# define ARGP_EI
+#else
+# define ARGP_EI _GL_EXTERN_INLINE
+#endif
 #undef __OPTIMIZE__
 #define __OPTIMIZE__ 1
 #include "argp.h"
diff --git a/lib/argp.h b/lib/argp.h
index c0c68a6..8a7654a 100644
--- a/lib/argp.h
+++ b/lib/argp.h
@@ -579,6 +579,10 @@ extern void *__argp_input (const struct argp *__restrict 
__argp,
 #  define __argp_state_help argp_state_help
 #  define __option_is_short _option_is_short
 #  define __option_is_end _option_is_end
+_GL_INLINE_HEADER_BEGIN
+#  ifndef ARGP_EI
+#   define ARGP_EI _GL_INLINE
+#  endif
 # endif
# ifndef ARGP_EI
@@ -635,6 +639,7 @@ __NTH (__option_is_end (const struct argp_option *__opt))
 #  undef __argp_state_help
 #  undef __option_is_short
 #  undef __option_is_end
+_GL_INLINE_HEADER_END
 # endif
 #endif /* Use extern inlines.  */
diff --git a/modules/argp b/modules/argp
index 8d49681..125046a 100644
--- a/modules/argp
+++ b/modules/argp
@@ -25,6 +25,7 @@ m4/argp.m4
 Depends-on:
 alloca
 dirname-lgpl
+extern-inline
 getopt-gnu
 strchrnul
 sysexits
--
1.7.11.7




reply via email to

[Prev in Thread] Current Thread [Next in Thread]