make check of R-alpha_2006-04-08_r37675 fails: qbeta
On Fri, 14 Apr 2006, Peter Dalgaard wrote:
Prof Brian Ripley <ripley at stats.ox.ac.uk> 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, ripley at stats.ox.ac.uk 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