[Bug middle-end/29440] 4.2 20061007 experimental misscompiles libavcodec/h264.o

poirierg at gmail dot com gcc-bugzilla@gcc.gnu.org
Thu Oct 12 14:53:00 GMT 2006



------- Comment #5 from poirierg at gmail dot com  2006-10-12 14:53 -------
Hello,

(In reply to comment #3)
> Does it work when compiled with -O0 instead of -O4?  How about -O1?

The code compiles and produces the expected result with -O1, O2, but can't be
compiled with -O0:
In file included from h264.c:36:
cabac.h: In function 'get_cabac':
cabac.h:454: error: can't find a register in class 'GENERAL_REGS' while
reloading 'asm'
cabac.h:454: error: 'asm' operand has impossible constraints
h264.c: In function 'decode_cabac_residual':
h264.c:6120: warning: initialization from incompatible pointer type

> Besies above, I noticed that the asm in get_cabac looks to be clobbering memory
> but is not marked as such.

I can't really comment on that as I'm not too inline-asm fluent... however, I
can say that this code can't be compiled without -fomit-frame-pointer.
Is GCC supposed to produce valid code with this source to begin with?

Guillaume


-- 


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



More information about the Gcc-bugs mailing list