[Top][All Lists]
[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [PATCH] argp: better 'inline',
Paul Eggert <=