[Spice-devel] [protocol 1/3] macros: Improve the SPICE_GNUC_DEPRECATED* macros
Frediano Ziglio
fziglio at redhat.com
Fri Aug 12 07:28:50 UTC 2016
>
> If the user specifically requests access to the deprecated APIs by
> defining the SPICE_DEPRECATED macro, then turn off the
> SPICE_GNUC_DEPRECATED* warnings.
> Also automatically use G_GNUC_DEPRECATED if available.
> Add SPICE_GNUC_DEPRECATED_FOR().
>
I'm not really sure it's a good idea to disable deprecation
warnings. If a program does want to ignore warnings I will
just force to avoid -Werror and tolerate the warnings.
> Signed-off-by: Francois Gouget <fgouget at codeweavers.com>
> ---
> spice/macros.h | 22 ++++++++++++++++++----
> 1 file changed, 18 insertions(+), 4 deletions(-)
>
> diff --git a/spice/macros.h b/spice/macros.h
> index a0413f3..6e2dbce 100644
> --- a/spice/macros.h
> +++ b/spice/macros.h
> @@ -78,11 +78,25 @@
> #define SPICE_GNUC_NO_INSTRUMENT
> #endif /* !__GNUC__ */
>
> -#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1)
> -#define SPICE_GNUC_DEPRECATED __attribute__((__deprecated__))
> +#if defined(SPICE_DEPRECATED)
> +/* Don't warn when deprecated APIs have been explicitly asked for */
> +# define SPICE_GNUC_DEPRECATED
> +#elif defined(G_GNUC_DEPRECATED)
> +# define SPICE_GNUC_DEPRECATED G_GNUC_DEPRECATED
> +#elif __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1)
> +# define SPICE_GNUC_DEPRECATED __attribute__((__deprecated__))
> #else
> -#define SPICE_GNUC_DEPRECATED
> -#endif /* __GNUC__ */
> +# define SPICE_GNUC_DEPRECATED
> +#endif /* __GNUC__ */
> +
> +#if defined(SPICE_DEPRECATED)
> +/* Don't warn when deprecated APIs have been explicitly asked for */
> +# define SPICE_GNUC_DEPRECATED_FOR(f)
> +#elif __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)
> +# define SPICE_GNUC_DEPRECATED_FOR(f) __attribute__((deprecated("Use " #f "
> instead")))
> +#else
> +# define SPICE_GNUC_DEPRECATED_FOR(f) SPICE_GNUC_DEPRECATED
> +#endif /* __GNUC__ */
>
> #if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3)
> # define SPICE_GNUC_MAY_ALIAS __attribute__((may_alias))
Frediano
More information about the Spice-devel
mailing list