# HG changeset patch # User Paul Eggert # Date 1355882373 28800 # Node ID 6cbd4d7cb9117b74c137a66ffcbb6cfbefde9626 # Parent c09382013ecb203e42225d5e20eeb74f2a541878 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. diff --git a/ChangeLog b/ChangeLog --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2012-12-18 Paul Eggert + + 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 filemode, sys_stat: Handle MPX files a la AIX. diff --git a/lib/argp-fmtstream.h b/lib/argp-fmtstream.h --- a/lib/argp-fmtstream.h +++ b/lib/argp-fmtstream.h @@ -197,6 +197,10 @@ #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 @@ #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 --- a/lib/argp-fs-xinl.c +++ b/lib/argp-fs-xinl.c @@ -20,7 +20,11 @@ # include #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 --- 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 --- a/lib/argp.h +++ b/lib/argp.h @@ -579,6 +579,10 @@ # 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 @@ # 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 --- a/modules/argp +++ b/modules/argp @@ -25,6 +25,7 @@ Depends-on: alloca dirname-lgpl +extern-inline getopt-gnu strchrnul sysexits