On Fri, Oct 16, 2015 at 11:39 PM, Ganesh Ajjanagadde <gajjanaga...@gmail.com> wrote: > On Wed, Oct 14, 2015 at 10:05 PM, Ganesh Ajjanagadde > <gajjanaga...@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 <gajjanaga...@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.
Not a fan myself of any such hacks to get compilers to shut up. Is GCC doing something clearly wrong here, and the false warning should be reported? - Hendrik _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel