[Rd] make check of R-alpha_2006-04-08_r37675 fails: qbeta

Prof Brian Ripley ripley at stats.ox.ac.uk
Fri Apr 14 19:47:28 CEST 2006


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



More information about the R-devel mailing list