[PATCH] Change DO loop translation, avoid undefined overflow and repeated step sign tests

Tobias Burnus burnus@net-b.de
Wed Jan 16 14:35:00 GMT 2013


Richard Biener wrote:
>                              if (D.1912 < 0)
>                                {
>                                  if (D.1911 > D.1910)
>                                    {
>                                      goto L.6;
>                                    }
>                                  else
>                                    {
>                                      countm1.6 = ((unsigned int) D.1910 -
> (unsigned int) D.1911) / -(unsigned int) D.1912;
>                                    }
>                                }
>                              else
>                                {
>                                  if (D.1911 < D.1910)
>                                    {
>                                      goto L.6;
>                                    }
>                                  else
>                                    {
>                                      countm1.6 = ((unsigned int) D.1911 -
> (unsigned int) D.1910) / (unsigned int) D.1912;
>                                    }
>                                }

That look better.


> Bootstrapped on x86_64-unknown-linux-gnu, regtests running.
> Ok for trunk?
>
> 2013-01-16  Richard Biener  <rguenther@suse.de>
>
> 	fortran/

I assume you mean 42108. (PR42131 caused the 'regression' and is a clone 
of 42108; PRs 52865/53957 are related.)

The patch is OK. Thanks!

Tobias



More information about the Fortran mailing list