This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug c/41311] New: [4.5 regression] FFmpeg crashes when converting mpg to avi


Hi,

FFmpeg compiled with GCC 4.5 (20090827) crashes when I try to convert mpg file
to avi (divx). 

"FFmpeg_020fpu -i test.mpg test.avi"

1. I get crash only with "-m68020 -m68881" options, not with -m68040 or
-m68060.
2. I get crash only with -O1, -O2 or -O3 options, not with -O0.
3. GCC 4.4.2 (20090825) don't have this problem.

The problematic file is "libavcodec/ratecontrol.c" - this file generates crash.
I include preprocessed file from GCC 4.4.2 and GCC 4.5.0.

$ make_68k_v45
/usr/local/amiga/bin/m68k-amigaos-gcc-4.5.0.exe -V 4.5.0 -DHAVE_AV_CONFIG_H -I.
-I"/bin/ffmpeg9" -D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112
-D_FILE_OFFSET_BITS=6
4 -D_LARGEFILE_SOURCE -m68020 -m68881 -mnobitfield -std=c99 -fno-common
-fomit-f
rame-pointer -Wdeclaration-after-statement -Wall -Wno-switch
-Wdisabled-optimiza
tion -Wpointer-arith -Wredundant-decls -Wcast-qual -Wwrite-strings -Wundef -O2
-
finline-functions -fno-math-errno       -MMD -MF libavcodec/ratecontrol.d -MT
li
bavcodec/ratecontrol.o -c -o libavcodec/ratecontrol.o libavcodec/ratecontrol.c
libavcodec/ratecontrol.c: In function 'ff_rate_control_init':
libavcodec/ratecontrol.c:109:5: warning: passing argument 3 of 'ff_parse'
discar
ds qualifiers from pointer target type
libavcodec/eval.h:64:14: note: expected 'double (**)(void *, double)' but
argume
nt is of type 'double (* const*)(void *, double)'
libavcodec/ratecontrol.c:109:5: warning: passing argument 4 of 'ff_parse'
discar
ds qualifiers from pointer target type
libavcodec/eval.h:64:14: note: expected 'const char **' but argument is of type
'const char * const*'
libavcodec/ratecontrol.c:168:13: warning: passing argument 2 of 'av_log' makes
i
nteger from pointer without a cast
./libavutil/log.h:104:6: note: expected 'int' but argument is of type 'const
cha
r *'
libavcodec/ratecontrol.c:168:13: warning: too many arguments for format
libavcodec/ratecontrol.c:169:13: warning: passing argument 2 of 'av_log' makes
i
nteger from pointer without a cast
./libavutil/log.h:104:6: note: expected 'int' but argument is of type 'const
cha
r *'
libavcodec/ratecontrol.c:169:13: warning: too many arguments for format
libavcodec/ratecontrol.c: In function 'get_qminmax':
libavcodec/ratecontrol.c:413:5: warning: passing argument 2 of 'av_log' makes
in
teger from pointer without a cast
./libavutil/log.h:104:6: note: expected 'int' but argument is of type 'const
cha
r *'
libavcodec/ratecontrol.c:413:5: warning: too many arguments for format
libavcodec/ratecontrol.c: In function 'ff_rate_estimate_qscale':
libavcodec/ratecontrol.c:692:9: warning: passing argument 2 of 'av_log' makes
in
teger from pointer without a cast
./libavutil/log.h:104:6: note: expected 'int' but argument is of type 'const
cha
r *'
libavcodec/ratecontrol.c:692:9: warning: too many arguments for format
libavcodec/ratecontrol.c:693:9: warning: passing argument 2 of 'av_log' makes
in
teger from pointer without a cast
./libavutil/log.h:104:6: note: expected 'int' but argument is of type 'const
cha
r *'
libavcodec/ratecontrol.c:693:9: warning: too many arguments for format
libavcodec/ratecontrol.c:725:13: warning: passing argument 2 of 'av_log' makes
i
nteger from pointer without a cast
./libavutil/log.h:104:6: note: expected 'int' but argument is of type 'const
cha
r *'
libavcodec/ratecontrol.c:725:13: warning: too many arguments for format
libavcodec/ratecontrol.c:764:9: warning: passing argument 2 of 'av_log' makes
in
teger from pointer without a cast
./libavutil/log.h:104:6: note: expected 'int' but argument is of type 'const
cha
r *'
libavcodec/ratecontrol.c:764:9: warning: too many arguments for format
libavcodec/ratecontrol.c:768:9: warning: passing argument 2 of 'av_log' makes
in
teger from pointer without a cast
./libavutil/log.h:104:6: note: expected 'int' but argument is of type 'const
cha
r *'
libavcodec/ratecontrol.c:768:9: warning: too many arguments for format
libavcodec/ratecontrol.c:780:9: warning: passing argument 2 of 'av_log' makes
in
teger from pointer without a cast
./libavutil/log.h:104:6: note: expected 'int' but argument is of type 'const
cha
r *'
libavcodec/ratecontrol.c:780:9: warning: too many arguments for format
libavcodec/ratecontrol.c:786:9: warning: passing argument 2 of 'av_log' makes
in
teger from pointer without a cast
./libavutil/log.h:104:6: note: expected 'int' but argument is of type 'const
cha
r *'
libavcodec/ratecontrol.c:786:9: warning: too many arguments for format
libavcodec/ratecontrol.c: In function 'init_pass2':
libavcodec/ratecontrol.c:874:9: warning: passing argument 2 of 'av_log' makes
in
teger from pointer without a cast
./libavutil/log.h:104:6: note: expected 'int' but argument is of type 'const
cha
r *'
libavcodec/ratecontrol.c:874:9: warning: too many arguments for format
libavcodec/ratecontrol.c:936:5: warning: passing argument 2 of 'av_log' makes
in
teger from pointer without a cast
./libavutil/log.h:104:6: note: expected 'int' but argument is of type 'const
cha
r *'
libavcodec/ratecontrol.c:936:5: warning: too many arguments for format


-- 
           Summary: [4.5 regression] FFmpeg crashes when converting mpg to
                    avi
           Product: gcc
           Version: 4.5.0
            Status: UNCONFIRMED
          Severity: critical
          Priority: P3
         Component: c
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: ami_stuff at o2 dot pl
  GCC host triplet: i686-cygwin
GCC target triplet: m68k-amigaos


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41311


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]