On Fri, 14 Apr 2006, Peter Dalgaard wrote: > Prof Brian Ripley <[EMAIL PROTECTED]> writes: > >> Uwe Ligges had the same problem with gcc 3.3.1 on SuSE 9.0. So I >> installed gcc 3.3.5 from the sources on an i386 box, and was able to >> reproduce it. >> >> It is an optimization bug. The crucial code is >> >> xtrunc = tx; /* this prevents trouble with excess FPU */ >> /* precision on some machines. */ >> if (xtrunc == xinbta) >> goto L_converged; >> >> and both xtrunc and xinbta are volatile. Seems that is being ignored >> in 3.3.5/1, and so the loop never terminates. >> >> Using an explicit check is safer and faster. I'll put mine in once I >> have finished testing. > > However, if the compiler is disobeying "volatile", it is buggy and it > might be safer not to use that compiler at all. There's no telling > what else might break for the same reason.
I agree, and in my earlier reply suggested we write this off but given we now have two reports I can see many more after release. It is a known bug in gcc 3.3.x, and so far nothing else has come to light. (This only came to light because the warning had previously been suppressed.) I would advise against systems as old as SuSE 9.0 or many grounds, but some people may have no choice. [...] -- Brian D. Ripley, [EMAIL PROTECTED] Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595 ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel