------- Comment #6 from burnus at gcc dot gnu dot org  2006-11-08 20:48 -------
> In this case neither sunf95 nor NAGf95 find the error.
This is actually wrong; both find it.

In my example the original tree looks like (shortend): foo (__result, n)
    ubound.0 = (int8) *n;
      S.4 = 1;
      while (1)
        {
          if (S.4 > ubound.0) goto L.1; else (void) 0;
          (*__result.0)[NON_LVALUE_EXPR <S.4> * D.1347 + D.1345] = 4.2e+1;
          S.4 = S.4 + 1;
        }
      L.1:;
Thus one should check
   "ubound.0*stride.1+offset.2 > __result->dim[0].ubound"
and
   "1 *stride.1+offset.2 < __result->dim[0].lbound"


-- 

burnus at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |burnus at gcc dot gnu dot
                   |                            |org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28849

Reply via email to