Hi Yao Zi,

> Macros __attribute__, __format__ and __printf__ are defined in argp.h
> for compatibility with ANSI and old gccs. But leaving them effective
> out of the scope of the header may break applications relying on
> these compiler attributes even with __STRICT_ANSI__ defined. So undef
> the macros after using.

LGTM.

Reviewed-by: Petr Vorel <petr.vo...@gmail.com>

Kind regards,
Petr

> Signed-off-by: Yao Zi <zi...@disroot.org>
> ---
>  include/argp.h | 11 +++++++++++
>  1 file changed, 11 insertions(+)

> diff --git a/include/argp.h b/include/argp.h
> index 8e8674296..d57920970 100644
> --- a/include/argp.h
> +++ b/include/argp.h
> @@ -46,12 +46,14 @@
>  /* This feature is available in gcc versions 2.5 and later.  */
>  # if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) || 
> defined(__STRICT_ANSI__)
>  #  define __attribute__(Spec) /* empty */
> +#  define __UCLIBC_ATTRIBUTE_FALLBACK__
>  # endif
>  /* The __-protected variants of `format' and `printf' attributes
>     are accepted by gcc versions 2.6.4 (effectively 2.7) and later.  */
>  # if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7) || 
> defined(__STRICT_ANSI__)
>  #  define __format__ format
>  #  define __printf__ printf
> +#  define __UCLIBC_PRINTF_FALLBACK__
>  # endif
>  #endif

> @@ -562,4 +564,13 @@ __NTH (__option_is_end (__const struct argp_option 
> *__opt))
>  }
>  #endif

> +#ifdef __UCLIBC_ATTRIBUTE_FALLBACK__
> +# undef __attribute__
> +#endif
> +
> +#ifdef __UCLIBC_PRINTF_FALLBACK__
> +# undef __format__
> +# undef __printf__
> +#endif
> +
>  #endif /* argp.h */
_______________________________________________
devel mailing list -- devel@uclibc-ng.org
To unsubscribe send an email to devel-le...@uclibc-ng.org

Reply via email to