4.2 misscompiles libavcodec/h264.o from FFmpeg project. The likely cause of this problem is lies in the file cabac.h (in attachment) gcc-4.0 and 4.1.0 compile this file correctly.
Here's the commandline: /home/guillaume/Prgm/gcc/bin/gcc -DHAVE_AV_CONFIG_H -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_ISOC9X_SOURCE -I.. -I.. -I../libavutil -Wdeclaration-after-statement -fno-PIC -O4 -march=pentium-m -mtune=pentium-m -pipe -ffast-math -fomit-frame-pointer -D_REENTRANT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -I/usr/include -I/usr/include/SDL -D_REENTRANT -I/usr/include/kde/artsc -pthread -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include -I/usr/include/dvdnav -I/usr/include/freetype2 -c -o h264.o h264.c -v -save-temps gcc: warning: -pipe ignored because -save-temps specified Using built-in specs. Target: i686-pc-linux-gnu Configured with: ../gcc-4.2-20061007/configure --prefix=/home/guillaume/Prgm/gcc/ Thread model: posix gcc version 4.2.0 20061007 (experimental) /home/guillaume/Prgm/gcc/bin/../libexec/gcc/i686-pc-linux-gnu/4.2.0/cc1 -E -quiet -v -I.. -I.. -I../libavutil -I/usr/include -I/usr/include/SDL -I/usr/include/kde/artsc -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include -I/usr/include/dvdnav -I/usr/include/freetype2 -iprefix /home/guillaume/Prgm/gcc/bin/../lib/gcc/i686-pc-linux-gnu/4.2.0/ -D_REENTRANT -DHAVE_AV_CONFIG_H -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_ISOC9X_SOURCE -D_REENTRANT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_REENTRANT h264.c -march=pentium-m -mtune=pentium-m -Wdeclaration-after-statement -fno-PIC -ffast-math -fomit-frame-pointer -O4 -fpch-preprocess -o h264.i ignoring nonexistent directory "/home/guillaume/Prgm/gcc/bin/../lib/gcc/i686-pc-linux-gnu/4.2.0/../../../../i686-pc-linux-gnu/include" ignoring duplicate directory "/home/guillaume/Prgm/gcc//lib/gcc/i686-pc-linux-gnu/4.2.0/include" ignoring nonexistent directory "/home/guillaume/Prgm/gcc//lib/gcc/i686-pc-linux-gnu/4.2.0/../../../../i686-pc-linux-gnu/include" ignoring duplicate directory ".." ignoring duplicate directory "/usr/include" as it is a non-system directory that duplicates a system directory ignoring duplicate directory "/usr/include" as it is a non-system directory that duplicates a system directory #include "..." search starts here: #include <...> search starts here: .. ../libavutil /usr/include/SDL /usr/include/kde/artsc /usr/include/glib-2.0 /usr/lib/glib-2.0/include /usr/include/dvdnav /usr/include/freetype2 /home/guillaume/Prgm/gcc/bin/../lib/gcc/i686-pc-linux-gnu/4.2.0/include /usr/local/include /home/guillaume/Prgm/gcc//include /usr/include End of search list. /home/guillaume/Prgm/gcc/bin/../libexec/gcc/i686-pc-linux-gnu/4.2.0/cc1 -fpreprocessed h264.i -quiet -dumpbase h264.c -march=pentium-m -mtune=pentium-m -auxbase-strip h264.o -O4 -Wdeclaration-after-statement -version -fno-PIC -ffast-math -fomit-frame-pointer -o h264.s GNU C version 4.2.0 20061007 (experimental) (i686-pc-linux-gnu) compiled by GNU C version 4.2.0 20061007 (experimental). GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096 Compiler executable checksum: 9d78c482f3158f545a4217a7c698d3a2 h264.c: In function 'decode_cabac_residual': h264.c:6120: warning: initialization from incompatible pointer type as -V -Qy -o h264.o h264.s GNU assembler version 2.16.91 (i486-linux-gnu) using BFD version 2.16.91 20060118 Debian GNU/Linux -- Summary: 4.2 20061007 experiemental misscompiles libavcodec/h264.o Product: gcc Version: 4.2.0 Status: UNCONFIRMED Severity: major Priority: P3 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: poirierg at gmail dot com GCC build triplet: (no options) GCC host triplet: i686, Linux, debian GCC target triplet: i686, Linux, debian http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29440