[FFmpeg-devel] [PATCHv2] avutil/attributes: extend av_uninit to clang

Ganesh Ajjanagadde gajjanagadde at gmail.com
Wed Oct 7 18:32:12 CEST 2015


On Wed, Oct 7, 2015 at 12:29 PM, Ganesh Ajjanagadde
<gajjanagadde at gmail.com> wrote:
> Commit 6dac8c8327 disabled av_uninit for clang, due to some useless warnings.
> The concept of av_uninit is inherently useful though. This patch silences a
> bunch of warnings on clang e.g
> http://fate.ffmpeg.org/log.cgi?time=20150918181527&log=compile&slot=x86_64-darwin-clang-polly-vectorize-stripmine-3.7.
> Furthermore, it should be useful for general usage of av_uninit in future.
>
> Signed-off-by: Ganesh Ajjanagadde <gajjanagadde at gmail.com>
> ---
>  libavutil/attributes.h | 6 ++++++
>  1 file changed, 6 insertions(+)
>
> diff --git a/libavutil/attributes.h b/libavutil/attributes.h
> index 5c6b9de..32b60e7 100644
> --- a/libavutil/attributes.h
> +++ b/libavutil/attributes.h
> @@ -147,6 +147,12 @@
>
>  #if defined(__GNUC__) && !defined(__INTEL_COMPILER) && !defined(__clang__)
>  #    define av_uninit(x) x=x
> +#elif defined(__clang__) && __has_warning("-Wuninitialized")
> +#    define av_uninit(x) \
> +        _Pragma("clang diagnostic push") \
> +        _Pragma("clang diagnostic ignored \"-Wuninitialized\"") \
> +        x=x \
> +        _Pragma("clang diagnostic pop")
>  #else
>  #    define av_uninit(x) x
>  #endif
> --
> 2.1.4
>

Can't guarantee that this will work, as I am unable to reproduce
Michael's build failure on clang 3.1. I have tested this with Debian
clang 3.0 and clang 3.7 on Arch.


More information about the ffmpeg-devel mailing list