------- Comment #4 from pinskia at gcc dot gnu dot org 2008-08-30 23:02 ------- Here is a C++ testcase (you can convert it to C if you want by changing the references to pointers and such): int gni97 = 97, gnj97 = 33; double gnu[97];
extern void g(void); double f(double & min, float & max) { double prephitmp35; double prephitmp24; float monte_temp; int D1505; prephitmp35 = min; prephitmp24 = max; if (prephitmp35 > prephitmp24) { g(); prephitmp35 = min; prephitmp24 = max; } else { D1505 = gni97 - 1; monte_temp = gnu[D1505] - gnu[gnj97-1]; if (monte_temp < 0) { monte_temp = monte_temp + 1.0; } gnu[D1505] = monte_temp; } return monte_temp * (prephitmp24 + prephitmp35) + prephitmp35; } -- pinskia at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- GCC build triplet|i686-pc-linux-gnu | GCC host triplet|i686-pc-linux-gnu | GCC target triplet|i686-pc-linux-gnu |i?86-*-* x86_64-*-* (-m32) http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37286