On Sat, Apr 30, 2011 at 16:37, Jerry DeLisle <jvdeli...@frontier.com> wrote:
> On 04/30/2011 12:56 AM, Janne Blomqvist wrote:
>>
>> On Sat, Apr 30, 2011 at 04:33, Jerry DeLisle<jvdeli...@frontier.com>
>>  wrote:
>>>
>>> Hi,
>>>
>>> The attached patch does some cleanup and a check for trailing zeros to
>>> decide whether or not to round.
>>>
>>> I have added the additional test cases posted on the bugzilla to the
>>> existing test case round_3.f08.
>>>
>>> Regression tested on x86-64.
>>>
>>> OK for trunk and then I will back port the whole enchilada to 4.6.1 in a
>>> few
>>> weeks.  Please consider the starting point of the zero scan carefully.  I
>>> have not convinced myself that the d * p covers all cases, but it works
>>> for
>>> all cases I have tried.
>>
>> I'm a bit suspicious about that as well:
>>
>> +       /* Scan for trailing zeros to see if we really need to round it.
>>  */
>> +       for(i = 1 +  d * p ; i<  ndigits; i++)
>> +         {
>> +           if (digits[i] != '0')
>> +             goto do_rnd;
>> +         }
>> +       goto skip;
>>
>
> I must have been tired yesterday.  Revised chunk.  Regression tests OK.
>
> @@ -233,7 +231,13 @@
>        if (sign_bit)
>          goto skip;
>        rchar = '0';
> -       break;
> +       /* Scan for trailing zeros to see if we really need to round it.  */
> +       for(i = nbefore + nafter; i < ndigits; i++)
> +         {
> +           if (digits[i] != '0')
> +             goto do_rnd;
> +         }
> +       goto skip;
>       case ROUND_DOWN:
>        if (!sign_bit)
>          goto skip;
>
> OK for trunk?

Ok.




-- 
Janne Blomqvist

Reply via email to