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

Reply via email to