[FFmpeg-devel] [PATCHv2] avformat/movenc: suppress -Wstrict-overflow warnings

Ganesh Ajjanagadde gajjanagadde at gmail.com
Fri Oct 16 23:39:34 CEST 2015


On Wed, Oct 14, 2015 at 10:05 PM, Ganesh Ajjanagadde
<gajjanagadde at gmail.com> wrote:
> This patch results in identical behavior of movenc, and suppresses -Wstrict-overflow
> warnings observed in GCC 5.2:
> http://fate.ffmpeg.org/log.cgi?time=20150926231053&log=compile&slot=x86_64-archlinux-gcc-threads-misc,
> "warning: assuming signed overflow does not occur when assuming that (X - c) > X is always false [-Wstrict-overflow]"
> I have manually checked that all usages are safe, and overflow possibility does
> not exist with this expression rewrite.
>
> Some expressed concern over readability loss, hence a comment is added.
> This is the simplest way to suppress this warning.
>
> Signed-off-by: Ganesh Ajjanagadde <gajjanagadde at gmail.com>
> ---
>  libavformat/movenc.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/libavformat/movenc.c b/libavformat/movenc.c
> index 5115585..ff997f2 100644
> --- a/libavformat/movenc.c
> +++ b/libavformat/movenc.c
> @@ -854,7 +854,9 @@ static int get_cluster_duration(MOVTrack *track, int cluster_idx)
>  {
>      int64_t next_dts;
>
> -    if (cluster_idx >= track->entry)
> +    /* GCC 5.2 wants to "optimize" cluster_idx >= track->entry to the below
> +     * expression. We actually mean cluster_idx >= track->entry. */
> +    if (cluster_idx - track->entry >= 0)
>          return 0;
>
>      if (cluster_idx + 1 == track->entry)
> --
> 2.6.1
>

ping, is this solution acceptable? Note that I will get rid of the
extra * on the second line of the comment.


More information about the ffmpeg-devel mailing list