------- Comment #14 from nospamname at web dot de 2010-01-10 11:13 ------- All GCC Versions after this Patch r146817 (Author: matz) have the Problem
http://gcc.gnu.org/ml/gcc-cvs/2009-04/msg01459.html Here is a better testprogram that show more exact what the code do, but this generate with all Versions correct code.seem only with speical register usage and maybe not relatet to backend Problem come. #define __P(protos) protos int fprintf __P((unsigned long *, const char *, ...)); unsigned int * stderr; #define assert(expression) \ ((void) ((expression) ? 0 : __assert (expression, __FILE__, __LINE__))) #define __assert(expression, file, line) \ (fprintf (stderr,"%s:%u: failed assertion `%s'\n", file, line,expression), \ abort(), 0) static double get_qscale(long *s, long *rce, double rate_factor, int frame_num) { return rate_factor*frame_num; } double get_diff_limited_q(long *s, long *rce, double q); float ff_rate_estimate_qscale(double rate_factor, int picture_number) { long *s; long *rce; float q; q= get_qscale(s, rce, rate_factor, picture_number); if (q < 0) return -1; assert(q>0.0); q = get_diff_limited_q(s, rce, q); assert(q>0.0); } int main(int argc, char **argv) { printf("%ld\n",ff_rate_estimate_qscale((float)argc,argc*4)); } -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41311