public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug middle-end/59824] New: [4.9 Regression] r206418 miscompiles ffmpeg
@ 2014-01-15 11:52 trippels at gcc dot gnu.org
2014-01-15 11:53 ` [Bug middle-end/59824] " trippels at gcc dot gnu.org
` (5 more replies)
0 siblings, 6 replies; 7+ messages in thread
From: trippels at gcc dot gnu.org @ 2014-01-15 11:52 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59824
Bug ID: 59824
Summary: [4.9 Regression] r206418 miscompiles ffmpeg
Product: gcc
Version: 4.9.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: middle-end
Assignee: unassigned at gcc dot gnu.org
Reporter: trippels at gcc dot gnu.org
Starting with r206418 ffmpeg gets miscompiled:
% mplayer movie.avi
...
Program received signal SIGSEGV, Segmentation fault.
ff_mpeg4_set_one_direct_mv (i=0, my=0, mx=0, s=0x55555588e180) at
libavcodec/mpeg4video.c:111
111 s->mv[0][i][1] = s->direct_scale_mv[0][p_my + tab_bias] + my;
(gdb) bt
#0 ff_mpeg4_set_one_direct_mv (i=0, my=0, mx=0, s=0x55555588e180) at
libavcodec/mpeg4video.c:111
#1 ff_mpeg4_set_direct_mv (s=s@entry=0x55555588e180, mx=mx@entry=0, my=0) at
libavcodec/mpeg4video.c:172
#2 0x00007ffff67e5f33 in mpeg4_decode_mb (s=0x55555588e180,
block=0x555555aa65c0) at libavcodec/mpeg4videodec.c:1580
#3 0x00007ffff6655a44 in decode_slice (s=s@entry=0x55555588e180) at
libavcodec/h263dec.c:238
#4 0x00007ffff6656666 in ff_h263_decode_frame (avctx=0x555555887c80,
data=0x5555558879e0, got_frame=0x7fffffffcfd4, avpkt=<optimized out>) at
libavcodec/h263dec.c:587
#5 0x00007ffff68ff5be in avcodec_decode_video2 (avctx=0x555555887c80,
picture=0x5555558879e0, got_picture_ptr=0x7fffffffcfd4, avpkt=0x7fffffffd000)
at libavcodec/utils.c:2123
#6 0x00005555556b061a in decode ()
#7 0x00005555556012e4 in decode_video ()
#8 0x00005555555a8a3d in update_video ()
#9 0x000055555559c494 in main ()
(gdb)
It looks like the following function (from libavcodec/mpeg4video.c) gets
miscompiled:
90 static inline void ff_mpeg4_set_one_direct_mv(MpegEncContext *s, int mx,
91 int my, int i)
92 {
93 int xy = s->block_index[i];
94 uint16_t time_pp = s->pp_time;
95 uint16_t time_pb = s->pb_time;
96 int p_mx, p_my;
97
98 p_mx = s->next_picture.motion_val[0][xy][0];
99 if ((unsigned)(p_mx + tab_bias) < tab_size) {
100 s->mv[0][i][0] = s->direct_scale_mv[0][p_mx + tab_bias] + mx;
101 s->mv[1][i][0] = mx ? s->mv[0][i][0] - p_mx
102 : s->direct_scale_mv[1][p_mx + tab_bias];
103 } else {
104 s->mv[0][i][0] = p_mx * time_pb / time_pp + mx;
105 s->mv[1][i][0] = mx ? s->mv[0][i][0] - p_mx
106 : p_mx * (time_pb - time_pp) / time_pp;
107 }
108 p_my = s->next_picture.motion_val[0][xy][1];
109 if ((unsigned)(p_my + tab_bias) < tab_size) {
110 s->mv[0][i][1] = s->direct_scale_mv[0][p_my + tab_bias] + my;
111 s->mv[1][i][1] = my ? s->mv[0][i][1] - p_my
112 : s->direct_scale_mv[1][p_my + tab_bias];
113 } else {
114 s->mv[0][i][1] = p_my * time_pb / time_pp + my;
115 s->mv[1][i][1] = my ? s->mv[0][i][1] - p_my
116 : p_my * (time_pb - time_pp) / time_pp;
117 }
118 }
When I put an "__attribute__ ((optimize(0)))" above it, ffmpeg no longer
crashes.
I will attach the proprocessed file.
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug middle-end/59824] [4.9 Regression] r206418 miscompiles ffmpeg
2014-01-15 11:52 [Bug middle-end/59824] New: [4.9 Regression] r206418 miscompiles ffmpeg trippels at gcc dot gnu.org
@ 2014-01-15 11:53 ` trippels at gcc dot gnu.org
2014-01-15 12:10 ` trippels at gcc dot gnu.org
` (4 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: trippels at gcc dot gnu.org @ 2014-01-15 11:53 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59824
--- Comment #1 from Markus Trippelsdorf <trippels at gcc dot gnu.org> ---
Created attachment 31839
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=31839&action=edit
miscompiled proprocessed file
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug middle-end/59824] [4.9 Regression] r206418 miscompiles ffmpeg
2014-01-15 11:52 [Bug middle-end/59824] New: [4.9 Regression] r206418 miscompiles ffmpeg trippels at gcc dot gnu.org
2014-01-15 11:53 ` [Bug middle-end/59824] " trippels at gcc dot gnu.org
@ 2014-01-15 12:10 ` trippels at gcc dot gnu.org
2014-01-15 12:26 ` trippels at gcc dot gnu.org
` (3 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: trippels at gcc dot gnu.org @ 2014-01-15 12:10 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59824
--- Comment #2 from Markus Trippelsdorf <trippels at gcc dot gnu.org> ---
gcc --save-temps -g -I. -I./ -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64
-D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC
-DHAVE_AV_CONFIG_H -std=c99 -fomit-frame-pointer -fPIC -pthread -D_GNU_SOURCE=1
-D_REENTRANT -I/usr/include/SDL -g -Wdeclaration-after-statement -Wall
-Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wwrite-strings
-Wtype-limits -Wundef -Wmissing-prototypes -Wno-pointer-to-int-cast
-Wstrict-prototypes -Wno-parentheses -Wno-switch -Wno-format-zero-length
-Wno-pointer-sign -O3 -fno-math-errno -fno-signed-zeros -fno-tree-vectorize
-Werror=implicit-function-declaration -Werror=missing-prototypes
-Werror=return-type -Werror=vla -Wno-maybe-uninitialized -MMD -MF
libavcodec/mpeg4video.d -MT libavcodec/mpeg4video.o -c -o
libavcodec/mpeg4video.o libavcodec/mpeg4video.c
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug middle-end/59824] [4.9 Regression] r206418 miscompiles ffmpeg
2014-01-15 11:52 [Bug middle-end/59824] New: [4.9 Regression] r206418 miscompiles ffmpeg trippels at gcc dot gnu.org
2014-01-15 11:53 ` [Bug middle-end/59824] " trippels at gcc dot gnu.org
2014-01-15 12:10 ` trippels at gcc dot gnu.org
@ 2014-01-15 12:26 ` trippels at gcc dot gnu.org
2014-01-15 12:27 ` trippels at gcc dot gnu.org
` (2 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: trippels at gcc dot gnu.org @ 2014-01-15 12:26 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59824
--- Comment #3 from Markus Trippelsdorf <trippels at gcc dot gnu.org> ---
Created attachment 31841
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=31841&action=edit
-S output good
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug middle-end/59824] [4.9 Regression] r206418 miscompiles ffmpeg
2014-01-15 11:52 [Bug middle-end/59824] New: [4.9 Regression] r206418 miscompiles ffmpeg trippels at gcc dot gnu.org
` (2 preceding siblings ...)
2014-01-15 12:26 ` trippels at gcc dot gnu.org
@ 2014-01-15 12:27 ` trippels at gcc dot gnu.org
2014-01-15 12:41 ` jakub at gcc dot gnu.org
2014-01-15 13:11 ` trippels at gcc dot gnu.org
5 siblings, 0 replies; 7+ messages in thread
From: trippels at gcc dot gnu.org @ 2014-01-15 12:27 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59824
--- Comment #4 from Markus Trippelsdorf <trippels at gcc dot gnu.org> ---
Created attachment 31842
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=31842&action=edit
-S output bad
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug middle-end/59824] [4.9 Regression] r206418 miscompiles ffmpeg
2014-01-15 11:52 [Bug middle-end/59824] New: [4.9 Regression] r206418 miscompiles ffmpeg trippels at gcc dot gnu.org
` (3 preceding siblings ...)
2014-01-15 12:27 ` trippels at gcc dot gnu.org
@ 2014-01-15 12:41 ` jakub at gcc dot gnu.org
2014-01-15 13:11 ` trippels at gcc dot gnu.org
5 siblings, 0 replies; 7+ messages in thread
From: jakub at gcc dot gnu.org @ 2014-01-15 12:41 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59824
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |jakub at gcc dot gnu.org
--- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Can you try the PR59747 fix
http://gcc.gnu.org/ml/gcc-patches/2014-01/msg00703.html first?
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug middle-end/59824] [4.9 Regression] r206418 miscompiles ffmpeg
2014-01-15 11:52 [Bug middle-end/59824] New: [4.9 Regression] r206418 miscompiles ffmpeg trippels at gcc dot gnu.org
` (4 preceding siblings ...)
2014-01-15 12:41 ` jakub at gcc dot gnu.org
@ 2014-01-15 13:11 ` trippels at gcc dot gnu.org
5 siblings, 0 replies; 7+ messages in thread
From: trippels at gcc dot gnu.org @ 2014-01-15 13:11 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59824
Markus Trippelsdorf <trippels at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |RESOLVED
Resolution|--- |DUPLICATE
--- Comment #6 from Markus Trippelsdorf <trippels at gcc dot gnu.org> ---
(In reply to Jakub Jelinek from comment #5)
> Can you try the PR59747 fix
> http://gcc.gnu.org/ml/gcc-patches/2014-01/msg00703.html first?
Thanks Jakub. The patch fixes the issue.
So dup of PR59747.
*** This bug has been marked as a duplicate of bug 59747 ***
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2014-01-15 13:11 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-01-15 11:52 [Bug middle-end/59824] New: [4.9 Regression] r206418 miscompiles ffmpeg trippels at gcc dot gnu.org
2014-01-15 11:53 ` [Bug middle-end/59824] " trippels at gcc dot gnu.org
2014-01-15 12:10 ` trippels at gcc dot gnu.org
2014-01-15 12:26 ` trippels at gcc dot gnu.org
2014-01-15 12:27 ` trippels at gcc dot gnu.org
2014-01-15 12:41 ` jakub at gcc dot gnu.org
2014-01-15 13:11 ` trippels at gcc dot gnu.org
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).